程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql查看每個用戶的權限

mysql查看每個用戶的權限

編輯:關於MYSQL數據庫
查看用戶權限: 怎麼樣查看用戶權限,最簡單的方法,通過如下語句: MySQL show grants for 'test1'@'localhost'; 如果要通過權限表來查看,比較復雜: 在5.0 以下,按照以下順序來查看: use

查看用戶權限:
怎麼樣查看用戶權限,最簡單的方法,通過如下語句:
MySQL> show grants for 'test1'@'localhost';
如果要通過權限表來查看,比較復雜:
在5.0 以下,按照以下順序來查看:
user->db->tables_priv->columns_priv,權限范圍依次遞減。和參數的設置不同,權限設置的原則是:
全局權限覆蓋局部權限
首先,從user 表中查看user 和host 對應的那些權限值,比如:
select_priv="Y"
說明此用戶組具有對所有數據庫的所有表的select 權限,此時,再單獨對某個數據庫設置select 權限已經沒有意義
如果user 表中的select_priv="N",則接著查看db 表中對應用戶組的權限,如果存在一條記錄如下:
Host | Db | User | Select_priv | Insert_priv |
Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv |
References_priv | Index_priv | Alter_priv | Create_tmp_table_priv |
Lock_tables_priv |
+-----------+--------+-----------+-------------+-------------+----------
---+-------------+-------------+-----------+------------+---------------
--+------------+------------+-----------------------+------------------+
| localhost | test2 | test1 | Y | Y | Y
| Y | Y | Y | N | Y |
Y | Y | Y | Y |
則表示test1@localhost 用戶組對test2 數據庫中的所有表具有所有權限(除了grant),此時單獨對此數據庫內的表進行權限設置已經沒有意義;如果沒有此記錄或者對應權限不是“N”,則接著查詢tables_priv 表,此表中的記錄決定了對數據庫中實際表的權限;如果tables_priv 內記錄的權限都是Y,則對表內的任何列單獨設置權限已經沒有意義,如果tables_priv 沒有對應表的記錄或者對應權限不是“N”,則接著查詢columnss_priv 表的記錄。
一步一般類推,最後得出某個用戶組的權限。
在MySQL 5.0 以後,多了一個數據字典庫information_schema,通過這個庫裡面的USER_PRIVILEGES、SCHEMA_PRIVILEGES、TABLE_PRIVILEGES 、COLUMN_PRIVILEGES表可以得到同樣的結論。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved