MySQL 用户管理

创建用户并授权:

语法:grant privileges on dbName.tableName to user@host identified by "password";
flush privileges;

privileges 表示要授予的权限,常见的权限有:
all 所有权限
select 查询权限
delete 删除权限
update 更新权限
create 创建权限
insert 插入权限
drop 删除数据库、数据表权限

dbName.tableName 表示对哪些库的哪些表进行授权,常见用法如下:
*.* 表示对所有库的所有表进行授权
dbName.* 表示对指定库的所有表进行授权
dbName.tableName 表示对指定库的指定表进行授权

user@host 表示授权给哪个用户以及允许该用户从哪里登录到数据库,常见用法如下:
'user'@'localhost' 表示只允许该用户只能从本地登录到数据库
'user'@'%' 表示允许该用户可以从任何一台机器远程登录到数据库
'user'@'192.168.1.2' 表示只允许该用户只能从192.168.1.2这台主机远程登录到数据库

"password" 用于设置用户密码
flush privileges; 用于刷新用户权限

PS:
如果用户不存在,则会自动创建用户
如果用户存在,则会修改用户的权限及密码

例子:

mysql> grant all on *.* to 'user1'@'localhost' identified by 'password';                  
mysql> grant all on db1.* to 'user2'@'%' identified by 'password';                        
mysql> grant select,insert on db1.* to 'user3'@'192.168.1.2' identified by 'password';    
# 分别表示:
# 创建 user1 用户,允许对所有库的所有表进行增删查改等所有操作,且只能从本地登录到数据库
# 创建 user2 用户,允许对db1库的所有表进行增删查改等所有操作,且可以从任意一台主机远程登录到数据库
# 创建 user3 用户,只允许对db1库的所有表进行查询和插入操作,且只能从192.168.1.2这台主机远程登录到数据库
mysql> flush privileges;                       # 授权完之后要刷新权限
mysql> show grants;                            # 查看所有用户的授权信息
mysql> show grants for 'user2'@'192.168.1.2';  # 查看指定用户的授权信息

 

 

 

 

 

      

posted @ 2019-02-20 16:31  孔雀东南飞  阅读(146)  评论(0编辑  收藏  举报