CHECK GRANT 查询用于检查当前用户/角色是否已被授予某项特定权限。
语法
查询的基本语法如下:
CHECK GRANT privilege[(column_name [,...])] [,...] ON {db.table[*]|db[*].*|*.*|table[*]|*}privilege— 权限类型。
示例
如果该用户此前已被授予该权限,则 check_grant 的返回值为 1。否则,check_grant 的返回值为 0。
如果 table_1.col1 存在,且当前用户被授予了权限 SELECT/SELECT(con) 或被授予了拥有该权限的角色,则返回值为 1。
CHECK GRANT SELECT(col1) ON table_1;┌─result─┐
│ 1 │
└────────┘如果 table_2.col2 不存在,或者当前用户未被授予 SELECT/SELECT(con) 权限或具有该权限的角色,则返回 0。
CHECK GRANT SELECT(col2) ON table_2;┌─result─┐
│ 0 │
└────────┘通配符
指定权限时,可以使用星号 (*) 代替表名或数据库名。有关通配符规则,请参见 WILDCARD GRANTS。