@@ -73,8 +73,7 @@ GRANT ALL PRIVILEGES ON *.* TO 'developer'@'127.0.0.1';
7373可以通过如下命令收回用户或角色的权限:
7474
7575``` sql
76- REVOKE [IF EXISTS]
77- priv_type [, priv_type] ...
76+ REVOKE priv_type [, priv_type] ...
7877 ON priv_level
7978 FROM user_or_role [, user_or_role] ...
8079```
@@ -122,31 +121,60 @@ SHOW PRIVILEGES;
122121
123122| 操作 | 需要的权限 |
124123| -----------------------| ------------|
124+ | SELECT | 表的 SELECT 权限 |
125+ | INSERT | 表的 INSERT 权限 |
126+ | UPDATE | 表的 UPDATE 权限 |
127+ | DELETE | 表的 DELETE 权限 |
125128| ALTER TABLE | 表的 ALTER 权限|
126- | ANALYZE TABLE | 表的 INSERT 和 SELECT 权限 |
127129| COMPACT TABLE | 表的 INSERT 权限|
128130| CREATE DATABASE | 全局 CREATE 权限 |
129- | CREATE INDEX | 表的 INDEX 权限 |
131+ | CREATE INDEX | 表的 ALTER 权限 |
130132| CREATE TABLE | 数据库的 CREATE 权限|
131133| CREATE ROLE | CREATE ROLE 权限 |
132134| CREATE USER | CREATE USER 权限 |
133135| DESC TABLE | 表的 SELECT 权限 |
134136| DROP DATABASE | 数据库的 DROP 权限 |
135- | DROP INDEX | 表的 INDEX 权限 |
137+ | DROP INDEX | 表的 ALTER 权限 |
138+ | DROP NODE | SUPER 权限 |
136139| DROP TABLE | 表的 DROP 权限 |
137140| DROP ROLE | DROP ROLE 权限 |
138141| DROP USER | CREATE USER 权限 |
139- | EXCLUDE NODE | SUPER 权限 |
142+ | EXCLUDE NODE | SUPER 权限 |
140143| EXPLAIN | 需要与 EXPLAIN 要分析的语句相同的权限 |
141- | FLUSH | RELOAD 权限 |
144+ | EXPORT PARTITION | 表的 SELECT 权限 |
145+ | FLUSH | RELOAD 权限 |
142146| GRANT | 如果是授予权限,需要 GRANT 权限以及 GRANT 所赋予的权限;<br > 如果是授予角色,需要满足以下条件之一:(1)具有 SUPER 权限(2)已经被授予过该角色,且 ` WITH_GRANT_OPTION = true ` |
143147| INCLUDE NODE | SUPER 权限 |
144148| REBALANCE | SUPER 权限 |
145149| REVOKE | 如果是收回权限,需要 GRANT 权限以及 REVOKE 所撤销的权限;<br > 如果是收回角色,需要 ` SUPER ` 权限|
146150| SET PASSWORD | CREATE USER 权限 |
151+ | SHOW CLUSTER | 无权限要求 |
152+ | SHOW CURRENT NODE | 无权限要求 |
153+ | SHOW CREATE DATABASE | 数据库的 SELECT 权限 |
147154| SHOW CREATE TABLE | 表的 SELECT 权限 |
148- | SHOW DATABASES | 能查看至少有一种权限的数据库,若具有 SHOW DATABASES 权限,则能查看所有数据库 |
149- | SHOW GRANTS | ` information_schema ` 数据库的 SELECT 权限(查看当前用户则无需权限) |
155+ | SHOW DATABASES | 能查看至少有一种数据库权限或数据库内表权限,若具有 SHOW DATABASES 权限,则能查看所有数据库 |
156+ | SHOW GRANTS | SUPER 权限(查看当前用户则无需权限) |
157+ | SHOW LICENSE | SUPER 权限 |
158+ | SHOW MIGRATION | SUPER 权限 |
159+ | SHOW PARTITIONS | 如果指定了 ` ON TABLE ` 选项,则需要该表的 SELECT 权限;<br > 否则能够查看所有具备 ` SELECT ` 权限的表的 parititons |
160+ | SHOW PRIVILEGES | 无权限要求 |
150161| SHOW TABLES | 能查看至少有一种权限的表 |
162+ | SHOW TASKS | SUPER 权限 |
163+ | SHOW VERSION | SUPER 权限 |
164+ | STOP MIGRATION | SUPER 权限 |
151165| TRIM DATABASE | 数据库的 DROP 权限|
152166| TRUNCATE TABLE | 表的 DROP 权限 |
167+
168+ ## 特定权限
169+
170+ ### INFORMATION SCHEMA 数据库的权限
171+
172+ 所有用户都直接获得对 ` information_schema ` 数据库的 ` SELECT ` 权限。
173+
174+ 不能通过 ` REVOKE ` 回收该数据库的权限。
175+
176+ 访问 ` information_schema ` 数据库中的表数据时,会根据用户具备的权限来展示数据,以 ` tables ` 表为例,用户只能查看到自己有权限访问表的信息。
177+
178+ ::: tip
179+ 可以通过 ` GRANT ` 授予该数据库的权限,但授权操作没有实际作用,不建议这样做。
180+ :::
0 commit comments