MySQL 用户管理之 GRANT 授权

Posted 小伍

tags:

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

GRANT 简介

GRANT语句可以用于进行授权和设置角色,需要有 GRANT OPTION 权限或 mysql 系统表的 UPDATE 权限。

不能在一个GRANT语句中同时进行授权和设置角色。GRANT语句使用ON子句区分是进行授权还是设置角色。

  • ON子句则为授权。
  • 没有ON子句则为设置角色。

基础语法

GRANT ALL ON db1.* TO \'jeffrey\'@\'localhost\';

GRANT \'role1\', \'role2\' TO \'user1\'@\'localhost\', \'user2\'@\'localhost\';

GRANT SELECT ON world.* TO \'role3\';

全局权限

适用于所有数据库,全局权限存储在 mysql.user系统表中。

GRANT ALL ON *.* TO \'someuser\'@\'somehost\';

GRANT SELECT, INSERT ON *.* TO \'someuser\'@\'somehost\';

数据库权限

适用于给定数据库中的所有对象,数据库权限存储在 mysql.db系统表中。

GRANT ALL ON mydb.* TO \'someuser\'@\'somehost\';

GRANT SELECT, INSERT ON mydb.* TO \'someuser\'@\'somehost\';

表权限

适用于给定表中的所有列,表权限存储在 mysql.tables_priv系统表中。

GRANT ALL ON mydb.mytbl TO \'someuser\'@\'somehost\';

GRANT SELECT, INSERT ON mydb.mytbl TO \'someuser\'@\'somehost\';

列权限

适用于给定表中的单个列,列权限存储在 mysql.columns_priv系统表中。

GRANT SELECT (col1), INSERT (col1, col2) ON mydb.mytbl TO \'someuser\'@\'somehost\';

存储过程权限

代理用户权限

设置角色

GRANT \'role1\', \'role2\' TO \'user1\'@\'localhost\', \'user2\'@\'localhost\';

查看用户权限

mysql> SHOW GRANTS FOR \'someuser\'@\'somehost\';
+-------------------------------------------------------+
| Grants for admin@localhost                            |
+-------------------------------------------------------+
| GRANT RELOAD, PROCESS ON *.* TO \'someuser\'@\'somehost\' |
+-------------------------------------------------------+

查看用户

mysql> SET print_identified_with_as_hex = ON;
mysql> SHOW CREATE USER \'admin\'@\'localhost\'\\G
*************************** 1. row ***************************
CREATE USER for admin@localhost: CREATE USER \'admin\'@\'localhost\'
IDENTIFIED WITH \'caching_sha2_password\'
AS 0x24412430303524301D0E17054E2241362B1419313C3E44326F294133734B30792F436E77764270373039612E32445250786D43594F45354532324B6169794F47457852796E32
REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK
PASSWORD HISTORY DEFAULT
PASSWORD REUSE INTERVAL DEFAULT
PASSWORD REQUIRE CURRENT DEFAULT

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

Mysql之权限管理

mysql---用户和权限管理复习

mysql grant 用户权限总结

mysql grant 用户权限总结

MySQL的用户管理与权限管理

MySQL的用户管理与权限管理