《MySQL如何查看用户授予的权限》要点: 本文介绍了MySQL如何查看用户授予的权限,希望对您有用。如果有疑问,可以联系我们。
导读:在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子...
在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限.具体分类如下:
全局层级
全局权限适用于一个给定服务器中的所有数据库.这些权限存储在mysql.user表中.GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限.
数据库层级
数据库权限适用于一个给定数据库中的所有目标.这些权限存储在mysql.db和mysql.host表中.GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限.
???
表层级
表权限适用于一个给定表中的所有列.这些权限存储在mysql.tables_priv表中.GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限.
列层级
列权限适用于一个给定表中的单一列.这些权限存储在mysql.columns_priv表中.当使用REVOKE时,您必须指定与被授权列相同的列.
子程序层级
CREATE ROUTINE,ALTER ROUTINE,EXECUTE和GRANT权限适用于已存储的子程序.这些权限可以被授予为全局层级和数据库层级.而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中.
1:那么我们来创建一个测试账号test,授予全局层级的权限.如下所示:
mysql> grant select,insert on *.* to test@'%' identified by 'test';
Query OK,0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)
mysql>?
那么可以用下面两种方式查询授予test的权限.如下所示:
- mysql>?show?grants?for?test;?
- +--------------------------------------------------------------------------------------------------------------+?
- |?Grants?for?test@%????????????????????????????????????????????????????????????????????????????????????????????|?
- +--------------------------------------------------------------------------------------------------------------+?
- |?GRANT?SELECT,?INSERT?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
- +--------------------------------------------------------------------------------------------------------------+?
- 1?row?in?set?(0.00?sec)?
- ??
- mysql>?select?*?from?mysql.user?where?user='test'\G;?
- ***************************?1.?row?***************************?
- ??????????????????Host:?%?
- ??????????????????User:?test?
- ??????????????Password:?*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29?
- ???????????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?
- ???????References_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:?mysql_native_password?
- ?authentication_string:??
- ??????password_expired:?N?
- 1?row?in?set?(0.04?sec)?
- ??
- ERROR:??
- No?query?specified?
- ??
- mysql>??
2:那么我们来创建一个测试账号test,授予数据库层级的权限.如下所示:
?
- mysql>?drop?user?test;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?grant?select,insert,update,delete?on?MyDB.*?to?test@'%'?identified?by?'test';?
- Query?OK,?0?rows?affected?(0.01?sec)?
- ??
- mysql>??
- ??
- mysql>?select?*?from?mysql.user?where?user='test'\G;?--可以看到无任何授权.?
- mysql>?select?*?from?mysql.db?where?user='test'\G;?
- ***************************?1.?row?***************************?
- ?????????????????Host:?%?
- ???????????????????Db:?MyDB?
- ?????????????????User:?test?
- ??????????Select_priv:?Y?
- ??????????Insert_priv:?Y?
- ??????????Update_priv:?Y?
- ??????????Delete_priv:?Y?
- ??????????Create_priv:?N?
- ????????????Drop_priv:?N?
- ???????????Grant_priv:?N?
- ??????References_priv:?N?
- ???????????Index_priv:?N?
- ???????????Alter_priv:?N?
- Create_tmp_table_priv:?N?
- ?????Lock_tables_priv:?N?
- ?????Create_view_priv:?N?
- ???????Show_view_priv:?N?
- ??Create_routine_priv:?N?
- ???Alter_routine_priv:?N?
- ?????????Execute_priv:?N?
- ???????????Event_priv:?N?
- ?????????Trigger_priv:?N?
- 1?row?in?set?(0.04?sec)?
- ??
- ERROR:??
- No?query?specified?
- ??
- mysql>??
- mysql>?show?grants?for?test;?
- +-----------------------------------------------------------------------------------------------------+?
- |?Grants?for?test@%???????????????????????????????????????????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- |?GRANT?USAGE?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
- |?GRANT?SELECT,?INSERT,?UPDATE,?DELETE?ON?`MyDB`.*?TO?'test'@'%'??????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- 2?rows?in?set?(0.00?sec)?
- ??
- mysql>??
(编辑:ASP站长网)
|