mysql-用户权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql-用户权限管理相关的知识,希望对你有一定的参考价值。

1、创建用户:create user ‘用户名‘@‘主机‘ [identified by ‘密码‘];

也可以用insert sql往mysql.user中插入数据。

用create user 创建的用户权限较小,不能创建数据库、表等。

2、修改用户名:rename user ‘用户名1‘@‘主机‘ to ‘用户名2‘@‘主机‘;

也可以用update sql语句修改mysql.user表中的数据。

3、删除用户:drop user ‘用户名‘@‘主机‘;

也可以用delete sql语句删除mysql.user表中的数据。

4、设置密码:set password for ‘用户名‘@‘主机‘=password(‘密码‘);

5、授权(创建用户并授权,此方式创建的用户拥有创建数据库、表等):

grant 权限类型 on 库.表/函数/存储过程 to ‘用户名‘@‘主机‘ [ identified by ‘testpass‘];

例1、将mydb库的students表的所有权限授权给 ‘testuser‘@‘192.168.%.%‘,并设置秘密为testpass:

grant all on mydb.students to ‘testuser‘@‘192.168.%.%‘ identified by ‘testpass‘;

例2、将"所有库的所有表/函数/存储过程"的所有权限授权给‘testuser‘@‘192.168.%.%‘并设置秘密为testpass:

grant all on . to ‘testuser‘@‘192.168.%.%‘ identified by ‘testpass‘;

例3、将mydb库的所有表的select权限授权给‘readonly‘@‘%‘,即‘readonly‘@‘%‘只有查询权限。

grant select on mydb.* TO ‘readonly‘@‘%‘

6、权限类型:

(1)、管理类权限:create user,file,show databases,super,

reload,shutdown,processlist,replication slave,

replication client,lock tables;

(2)、库级别和表级别权限:alter,create,create view,drop,execute,

index,grant,show view

(3)、数据操作(表级别):select,insert,update,delete

(4)、字段级别:select(col1,...),insert(col1,...),update(col1,...)

7、查看某个用户的权限:

show grants for ‘用户名‘@‘主机‘;

8、收回权限:revoke 权限类型 on 库.表/函数/存储过程 from ‘用户名‘@‘主机‘;

如:将收回用户‘testuser‘@‘localhost‘所有权限。

revoke all on . from ‘testuser‘@‘localhost‘;

9、mysql库中与用户授权相关的表:

db:库级别的权限。

tables_priv:表级别的权限。

colomns_priv:列级别的权限。

procs_priv:存储过程和存储函数相关的权限。

proxies_priv:代理用户相关的权限。

10、flush:

(1)、flush privileges:刷新授权,一般用于对某账户授权后,使其立即生效。

(2)、flush hosts:清空host,一般用于因账户信息记不太清楚当连接数据库几次一直失败,那么当 获得正确账户信息连接被拒绝时,就需要执行flush host.

以上是关于mysql-用户权限管理的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 权限说明

MySQL的用户管理与权限管理

MySQL的用户管理与权限管理

JS+JavaBean判断管理员增删改的操作权限

MySQL用户及权限管理

MySQL—— 用户创建和权限管理