程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> MySQL用戶和權限管理詳解

MySQL用戶和權限管理詳解

編輯:MYSQL入門知識
 

一、MySQL用戶的基本說明:

1.1 用戶的基本結構

MySQL的用戶:用戶名@主機
■用戶名:16個字符以內
■主機:可以是主機名、IP地址、網絡地址等
 

主機名:www.xxx.com,localhost

IP:192.168.0.1

網絡地址:172.16.0.0/255.255.0.0

主機還支持通配符:%和_

172.16.%.%

%.toxingwang.com

注意:對於包含了主機名的用戶,MySQL會嘗試反解析主機名,此時可能會造成連接非常慢,如果反解析的IP地址與連接點的地址不同,還可能出現無法連接的情況。因此,為了加快連接並避免出現解析問題,可以在my.cnf文件中加入如下一行加速連接:
 

--skip-name-resolve

MySQL用戶的密碼有MySQL內部的password()函數管理。

1.2 授權表:

MySQL用戶只是用於認證,而用戶具有的權限有相應的授權機制實現。首先MySQL用戶授權的,主要為如下劉張表:
 

user: Contains user accounts, global privileges, and other non-privilege columns.
user: 用戶帳號、全局權限

db: Contains database-level privileges.
db: 庫級別權限

host: Obsolete.
host: 廢棄

tables_priv: Contains table-level privileges.
tables_priv: 表級別權限

columns_priv: Contains column-level privileges.
columns_priv: 列級別權限

procs_priv: Contains stored procedure and function privileges.
procs_priv: 存儲過程和存儲函數相關的權限

proxies_priv: Contains proxy-user privileges.
proxies_priv: 代理用戶權限

在MySQL數據庫服務啟動後,這六張表會被直接加載到內存,而今後所有的認證都直接從內存中這六張表獲取,而不是去讀取磁盤。

1.3 各授權表的說明:
■user表范圍列決定是否允許或拒絕到來的連接。對於允許的連接,user表授予的權限指出用戶的全局(超級用戶)權限。這些權限適用於服務器上的all數據庫。
■db表范圍列決定用戶能從哪個主機存取哪個數據庫。權限列決定允許哪個操作。授予的數據庫級別的權限適用於數據庫和它的表。
■tables_priv和columns_priv表類似於db表,但是更精致:它們在表和列級應用而非在數據庫級。授予表級別的權限適用於表和所有它的列。授予列級別的權限只適用於專用列。
■procs_priv表適用於保存的程序。授予程序級別的權限只適用於單個程序。

管理權限(例如RELOAD或SHUTDOWN等等)僅在user表中被指定。這是因為管理性操作是服務器本身的操作並且不是特定數據庫,因此沒有理由在其他授權表中列出這樣的權限。事實上,只需要查詢user表來決定你是否執行一個管理操作。

FILE權限也僅在user表中指定。它不是管理性權限,但你在服務器主機上讀或寫文件的能力與你正在存取的數據庫無關。

當mysqld服務器啟動時,將授權表的內容讀入到內存中。你可以通過FLUSH PRIVILEGES語句或執行mysqladmin flush-privileges或mysqladmin reload命令讓它重新讀取表。

二、MySQL提供的權限

賬戶權限信息被存儲在mysql數據庫的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL啟動時時,服務器將這些數據庫表內容讀入內存。

GRANT和REVOKE語句所用的涉及權限的名稱顯示在下表,還有在授權表中每個權限的表列名稱和每個權限有關的上下文。
 

 

權限
 


 

上下文
 

 

CREATE
 

Create_priv
 

數據庫、表或索引
 

 

DROP
 

Drop_priv
 

數據庫或表
 

 

GRANT OPTION
 

Grant_priv
 

數據庫、表或保存的程序
 

 

REFERENCES
 

References_priv
 

數據庫或表
 

 

ALTER
 

Alter_priv
 


 

 

DELETE
 

Delete_priv
 


 

 

INDEX
 

Index_priv
 


 

 

INSERT
 

Insert_priv
 


 

 

SELECT
 

Select_priv
 


 

 

UPDATE
 

Update_priv
 


 

 

CREATE VIEW
 

Create_view_priv
 

視圖
 

 

SHOW VIEW
 

Show_view_priv
 

視圖
 

 

ALTER ROUTINE
 

Alter_routine_priv
 

保存的程序
 

 

CREATE ROUTINE
 

Create_routine_priv
 

保存的程序
 

 

EXECUTE
 

Execute_priv
 

保存的程序
 

 

FILE
 

File_priv
 

服務器主機上的文件訪問
 

 

CREATE TEMPORARY TABLES
 

Create_tmp_table_priv
 

服務器管理
   

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