文章目录
用户管理
如果我们只能使用root用户,这样存在安全隐患,因为root可以访问所有的数据库和表。这时,就需要使用MySQL的用户管理。
从而限制某个特定的用户只能访问特定的数据库和表,并且对其权限作出一定的限制,比如只有可读权限。
查看用户信息
MySQL中的用户信息,都存储在系统数据库mysql的user表中:
select host,user,authentication_string from user;
- host:表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
- user:用户名
- authentication_string:用户密码通过password函数加密后的
创建用户
create user '用户名'@'登陆主机/ip' identified by '密码';
-
%从任意处登录,一般只有root用户设置
-
普通用户一般只会设置在某个地方登录来保证安全性,%一般只会设置root用户
通过Windows登录新创建的用户:
由于新用户没有权限,因此无法访问数据库。
删除用户
drop user '用户名'@'主机名';
修改用户密码
- 自己修改密码:
set password=password('新的密码');
- root用户修改指定用户的密码:
set password for '用户名'@'主机名'=password(‘新的密码’);
数据库的权限
给用户赋权
查看数据库权限:
show grants for '用户名'@'登陆位置';
- 查看权限列表
select * from mysql.user;
给用户赋权:
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码'];
- 权限列表:多个权限用逗号分开,如果使用all则赋予所有权利。
- 库.对象名 :
库.*
表示某个数据库中的所有数据对象(表,视图,存储过程等),*.*
表示所有库的所有数据对象。 - identified by:可选,如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。
权限刷新:flush privileges;
比如要给test用户查看和修改test表的权限:
回收权限
revoke 权限列表 on 库.对象名 from ‘用户名’@‘登陆位置’;