程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql的權限級別

mysql的權限級別

編輯:MySQL綜合教程

mysql的權限級別


mysql有5個級別的權限,分別是:
Clobal Level,Database Level,Table level,Column Level,Routine Level。

1,Clobal Level:它是針對整個mysql數據庫服務器的全局權限。對mysql裡的某個數據庫,或某個數據庫的某張表的權限。所有的權限信息都存在mysql.user這張表中。

\

全局權限的設置語句:

GRANT ALL ON *.* to 'root'@'localhost'
第一個*代表數據庫名,這裡是所有的數據庫,第二個*代表表名。
全局權限有ALTER ALTER ROUTINE CREATE ALL CREATE ROUTINE CREATE TEMPORARY TABLES CREATE USER CREATE VIEW DELETE All DROP All EXECUTE FILE All INTO FILE INDEX All INSERT All LOCK TABLES PROCESS All RELOAD All REPLICATION CLIENT SLAVE STATUS REPLICATION SLAVE SELECT SHOW DATABASES SHOW VIEW view SHUTDOWN SUPER UPDATE USAGE

2,Database Level: 數據庫級別的權限,通過databasename.* 設置權限。設置語句如下:

GRANT ALL ON databasename.* to 'root'@'localhost'
它會被global level的權限給覆蓋掉,如有兩條如下的權限設置語句:
GRANT SELECT on test.* to 'root'@'localhost';
REVOKE SELECT ON *.* FROM 'root'@'localhost';
'root'@'localhost'將不再對test擁有select權限。
數據庫權限有: CREATE USER,FILE,PROCESS,RELOAD,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN,SUPER USAGE

3,Table Level:表級別的權限能被全局權限和數據庫級別權限覆蓋

GRANT SELECT ON test.test to 'root'@'localhost';
SHOW GRANTS FOR 'root'@'localhost';
可以通過use選中某個數據庫,直接對table名設置權限
GRANT SELECT ON test to 'root'@'localhost';	
表的權限有:ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE

4,Column Level:表的某個列的權限。它會被前面三個權限給覆蓋掉

GRANT SELECT(id) ON test to 'root'@'localhost';
字段級別的權限有INSERT,SELECT ,UPDATE

5,Routine Level:是針對函數和存儲過程的權限,他會被1,2,3個權限給覆蓋掉。

GRANT EXECUTE ON test.p to'root'@'localhost';

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