《MySQL如何查看用戶授予的權限》要點:
本文介紹了MySQL如何查看用戶授予的權限,希望對您有用。如果有疑問,可以聯系我們。
- 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>??
3:那么我們來創建一個測試賬號test,授予表層級的權限.如下所示:
?
- mysql>?drop?user?test;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?flush?privileges;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?grant?all?on?MyDB.kkk?to?test@'%'?identified?by?'test';?
- Query?OK,?0?rows?affected?(0.01?sec)?
- ??
- mysql>??
- ??
- mysql>?show?grants?for?test;?
- +-----------------------------------------------------------------------------------------------------+?
- |?Grants?for?test@%???????????????????????????????????????????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- |?GRANT?USAGE?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
- |?GRANT?ALL?PRIVILEGES?ON?`MyDB`.`kkk`?TO?'test'@'%'??????????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- 2?rows?in?set?(0.00?sec)?
- ??
- mysql>?select?*?from?mysql.tables_priv\G;?
- ***************************?1.?row?***************************?
- ???????Host:?%?
- ?????????Db:?MyDB?
- ???????User:?test?
- ?Table_name:?kkk?
- ????Grantor:?root@localhost?
- ??Timestamp:?0000-00-00?00:00:00?
- ?Table_priv:?Select,Insert,Update,Delete,Create,Drop,References,Index,Alter,Create?View,Show?view,Trigger?
- Column_priv:??
- 1?row?in?set?(0.01?sec)?
- ??
- ERROR:??
- No?query?specified?
- ??
- mysql>??
4:那么我們來創建一個測試賬號test,授予列層級的權限.如下所示:
?
- mysql>?drop?user?test;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?flush?privileges;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?grant?select?(id,?col1)?on?MyDB.TEST1?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>??
- ??
- ??
- mysql>?select?*?from?mysql.columns_priv;?
- +------+------+------+------------+-------------+---------------------+-------------+?
- |?Host?|?Db???|?User?|?Table_name?|?Column_name?|?Timestamp???????????|?Column_priv?|?
- +------+------+------+------------+-------------+---------------------+-------------+?
- |?%????|?MyDB?|?test?|?TEST1??????|?id??????????|?0000-00-00?00:00:00?|?Select??????|?
- |?%????|?MyDB?|?test?|?TEST1??????|?col1????????|?0000-00-00?00:00:00?|?Select??????|?
- +------+------+------+------------+-------------+---------------------+-------------+?
- 2?rows?in?set?(0.00?sec)?
- ??
- mysql>?show?grants?for?test;?
- +-----------------------------------------------------------------------------------------------------+?
- |?Grants?for?test@%???????????????????????????????????????????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- |?GRANT?USAGE?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
- |?GRANT?SELECT?(id,?col1)?ON?`MyDB`.`TEST1`?TO?'test'@'%'?????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- 2?rows?in?set?(0.00?sec)?
- ??
- mysql>??
5:那么我們來創建一個測試賬號test,授子程序層級的權限.如下所示:
?
- mysql>?DROP?PROCEDURE?IF?EXISTS?PRC_TEST;?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?DELIMITER?//?
- mysql>?CREATE?PROCEDURE?PRC_TEST()?
- ????->?BEGIN?
- ????->????SELECT?*?FROM?kkk;?
- ????->?END?//?
- Query?OK,?0?rows?affected?(0.00?sec)?
- ??
- mysql>?DELIMITER?;?
- ??
- mysql>?grant?execute?on?procedure?MyDB.PRC_TEST?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>??
- ??
- ??
- mysql>?show?grants?for?test;?
- +-----------------------------------------------------------------------------------------------------+?
- |?Grants?for?test@%???????????????????????????????????????????????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- |?GRANT?USAGE?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
- |?GRANT?EXECUTE?ON?PROCEDURE?`MyDB`.`prc_test`?TO?'test'@'%'??????????????????????????????????????????|?
- +-----------------------------------------------------------------------------------------------------+?
- 2?rows?in?set?(0.00?sec)?
- ??
- mysql>?select?*?from?mysql.procs_priv?where?User='test';?
- +------+------+------+--------------+--------------+----------------+-----------+---------------------+?
- |?Host?|?Db???|?User?|?Routine_name?|?Routine_type?|?Grantor????????|?Proc_priv?|?Timestamp???????????|?
- +------+------+------+--------------+--------------+----------------+-----------+---------------------+?
- |?%????|?MyDB?|?test?|?PRC_TEST?????|?PROCEDURE????|?root@localhost?|?Execute???|?0000-00-00?00:00:00?|?
- +------+------+------+--------------+--------------+----------------+-----------+---------------------+?
- 1?row?in?set?(0.00?sec)?
- ??
- mysql>??
所以,如果需要查看用戶被授予的權限,就需要從這五個層級來查看被授予的權限.從上到下或從小到上,逐一檢查各個層級被授予的權限.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5531.html