SHOW PRIVILEGES语法用于查询所有用户拥有的权限。您可以根据查询结果,判断指定用户的权限是否合适,方便您对数据库进行权限管理,进一步规避安全风险。
引擎与版本
SHOW PRIVILEGES语法适用于宽表引擎和时序引擎。
宽表引擎2.4.3及以上版本支持SHOW PRIVILEGES语法。
时序引擎无版本限制。
语法
show_privileges_statement ::= SHOW PRIVILEGES
使用说明
使用SHOW PRIVILEGES语法时必须具有ADMIN权限。如何授予ADMIN权限,请参见GRANT。更多权限说明,请参见权限分类。
返回结果集说明
列名 | 类型 | 说明 |
user | VARCHAR | 拥有权限的用户名。 |
global privileges | VARCHAR | 该用户拥有的GLOBAL级权限集合。 |
database privileges | VARCHAR | 该用户拥有的DATABASE级(Namespace级)权限集合。 |
table privileges | VARCHAR | 该用户拥有的TABLE级权限集合。 说明 时序引擎暂不支持为TABLE级别的授权,返回结果为空。 |
说明
为了便于应用处理,权限列中的数据都是以JSON的形式展示。JSON的结构如下:
key:访问对象的名称(如一个数据库名或一个表名)。全局权限的key固定为
GLOBAL
。value:权限的列表。
即使没有对应级别的权限,值也会是一个空JSON对象的字符串。
示例
展示所有用户的权限。
SHOW PRIVILEGES;
返回结果:
+-------+-------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------+
| user | global privileges | database privileges | table privileges |
+-------+-------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------+
| User1 | {"actions":["READ"]} | {"Db1":{"actions":["WRITE"],"namespace":"Db1"}} | {"Db1.Table1":{"actions":["READ"],"tableName":"Db1.Table1"}} |
+-------+-------------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------+
文档内容是否对您有帮助?