首批通过分布式安全可靠测评,为关键业务系统打造
查看用户权限
更新时间:2026-06-27 09:05:42
用户创建成功后,您可以根据需要查看用户的权限。
前提条件
使用
SHOW GRANTS语句查询用户权限时,如果是查询当前用户,则不需要任何权限;如果需要查询其他用户,则需要拥有全局SELECT权限。使用视图查看用户权限时,需要拥有相应视图的
SELECT权限。
操作步骤
管理员登录数据库的 MySQL 租户。
通过以下方式查看用户权限。
通过
SHOW GRANTS语句查看用户被授予的权限。您可以使用以下任意一条语句来查看当前用户被授予的权限:
obclient> SHOW GRANTS;obclient> SHOW GRANTS FOR CURRENT_USER;obclient> SHOW GRANTS FOR CURRENT_USER();如果需要查看指定用户被授予的权限,可以加上
FOR子句,语句如下:obclient> SHOW GRANTS FOR test;查询结果的示例如下。
+----------------------------------------+ | Grants for test@% | +----------------------------------------+ | GRANT INSERT, SELECT ON *.* TO 'test' | | GRANT SELECT ON `db1`.* TO 'test' | +----------------------------------------+ 2 rows in set查看用户所拥有的全局权限。
可以通过
mysql.user视图查看用户所拥有的全局权限。示例如下:
obclient> SELECT * FROM mysql.user WHERE user='test'\G *************************** 1. row *************************** host: % user: test password: *6691484ea6b50ddde1926a220da01fa9e575c18a select_priv: Y insert_priv: Y update_priv: N delete_priv: N create_priv: N drop_priv: N reload_priv: N shutdown_priv: N process_priv: N file_priv: N grant_priv: N reference_priv: N index_priv: N alter_priv: N show_db_priv: N super_priv: N create_tmp_table_priv: N lock_tables_priv: N execute_priv: N repl_slave_priv: N repl_client_priv: N create_view_priv: N show_view_priv: N create_routine_priv: N alter_routine_priv: N create_user_priv: N event_priv: N trigger_priv: N create_tablespace_priv: N ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: ob_native_password authentication_string: password_expired: 1 row in set更多
mysql.user视图的字段及说明请参见 mysql.user。查看用户所拥有的数据库级权限。
可以通过
mysql.db视图查看某个用户所拥有的数据库级权限。obclient> SELECT * FROM mysql.db WHERE user='test'\G *************************** 1. row *************************** host: % db: test user: test select_priv: Y insert_priv: Y update_priv: Y delete_priv: N create_priv: N drop_priv: N grant_priv: N reference_priv: N index_priv: Y alter_priv: Y create_tmp_table_priv: N lock_tables_priv: N create_view_priv: N show_view_priv: Y create_routine_priv: N alter_routine_priv: N execute_priv: N event_priv: N trigger_priv: N 1 row in set更多
mysql.db视图的字段及说明请参见 mysql.db。查看用户被授予的列权限。
可以通过视图
mysql.columns_priv或information_schema.COLUMN_PRIVILEGES查看用户被授予的列权限。查询视图
mysql.columns_privobclient [mysql]> SELECT * FROM mysql.columns_priv;查询结果如下:
+------+-------+-------+------------+-------------+-------------+---------------------+ | Host | Db | User | Table_name | Column_name | Column_priv | Timestamp | +------+-------+-------+------------+-------------+-------------+---------------------+ | % | test1 | user2 | tbl1 | c1 | Insert | 2024-03-27 15:02:57 | | % | test1 | user1 | tbl1 | c1 | Select | 2024-03-27 11:05:21 | +------+-------+-------+------------+-------------+-------------+---------------------+ 2 rows in set查询视图
information_schema.COLUMN_PRIVILEGESobclient [information_schema]> SELECT * FROM information_schema.COLUMN_PRIVILEGES;查询结果如下:
+-------------+---------------+--------------+------------+-------------+----------------+--------------+ | GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | PRIVILEGE_TYPE | IS_GRANTABLE | +-------------+---------------+--------------+------------+-------------+----------------+--------------+ | 'user2'@'%' | def | test1 | tbl1 | c1 | INSERT | YES | | 'user1'@'%' | def | test1 | tbl1 | c1 | SELECT | NO | +-------------+---------------+--------------+------------+-------------+----------------+--------------+ 2 rows in set有关
information_schema.COLUMN_PRIVILEGES视图的字段及说明请参见 information_schema.COLUMN_PRIVILEGES。
相关文档
用户权限及授权相关操作介绍,请阅读以下内容: