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

MySQL數據庫的用戶帳號管理基礎知識

編輯:MySQL綜合教程

導讀:MySQL管理員應該知道怎樣通過指定哪些用戶可連接到服務器、從哪裡進行連接,以及在連接時做什麼,來設置MySQL用戶賬號。MySQL3.22.11引入了兩個更容易進行這項工作的語句:GRANT 語句創建MySQL用戶並指定其權限,REVOKE 語句刪除權限。這兩個語句充當mysql數據庫中的授權表的前端,並提供直接操縱這些表內容的可選擇的方法。GRANT 和REVOKE 語句影響以下四個表:

授權表內容

還有第五個授權表( host),但它不受GRANT 或REVOKE的影響。

當您為某個用戶發布GRANT 語句時,應在user表中為該用戶創建一個項。如果該語句指定了所有全局特權(管理權限或用於所有數據庫的權限),則這些指定也被記錄在user表中。如果指定了數據庫、表或列的權限,它們將記錄在db、tables_priv 和columns_priv表中。

使用GRANT 和REVOKE語句比直接修改授權表更容易。但是,建議您最好通過閱讀第12章來補充本章的內容,第12章中詳細討論了授權表。這些表非常重要,作為一位管理員應該了解這些表是怎樣在GRANT 和REVOKE 語句級上工作的。

本節下面的部分將討論如何設置MySQL用戶的賬號和授權,還將介紹如何取消權限以及從授權表中刪除全部用戶,並且將考慮一個困擾許多新的MySQL管理員的難題。

您還要考慮使用mysqlaccess 和mysql_setpermission 腳本,它們是MySQL分發包的組成部分。這些是Perl 的腳本,它們提供了設置用戶賬號的GRANT 語句的代用品。mysql_setpermission 需要具有DBI 的支持環境。

創建新用戶和授權

GRANT 語句的語法如下:

GRANT privileges (columns)

ON what

TO user IDENTIFIEDBY "password"

WITH GRANT OPTION

要使用該語句,需要填寫以下部分:

privileges 分配給用戶的權限。下表列出了可在GRANT 語句中使用的權限說明符:

權限說明符權限允許的操作

上表顯示的第一組權限說明符適用於數據庫、表和列。第二組說明符是管理特權。通常,這些權限的授予相當保守,因為它們會影響服務器的操作(例如, SHUTDOWN 特權不是按每天來分發的權限)。第三組說明符是特殊的。ALL的意思是所有的權限,而USAGE 的意思是無權限即創建用戶,但不授予任何的權限。

columns 權限適用的列。這是可選的,只來設置列專有的權限。如果命名多於一個列,則用逗號分開。

what 權限應用的級別。權限可以是全局的(適用於所有數據庫和所有的表)、數據庫專有的(適用於某個數據庫中的所有表),或表專有的。可以通過指定一個C O L U M N S子句將權限授予特定的列。

user 使用權限的用戶。它由用戶名和主機名組成。在MySQL中,不僅指定誰進行連接,還要指定從哪裡連接。它允許您擁有兩個帶有相同名字的、從不同位置連接的用戶。MySQL允許在它們之間進行區別並相互獨立地分配權限。

MySQL的用戶名就是您在連接到服務器時指定的名字。該名字與您的UNIX 注冊名或Windows 名的沒有必然連系。缺省設置時,客戶機程序將使用您注冊的名字作為MySQL的用戶名(如果您不明確指定一個名字的話),但這只是一個約定。有關將root作為可以操作一切MySQL的超級用戶名也是這樣,就是一種約定。您也可以在授權表中將此名修改成nobody,然後作為nobody 用戶進行連接,以執行需要超級用戶特權的操作。

password 分配給該用戶的口令。這是可選的。如果您不給新用戶指定IDENTIFIEDBY子句,該用戶不分配口令(是非安全的)。對於已有的用戶,任何指定的口令將替代舊口令。如果不指定新口令,用戶的舊口令仍然保持不變。當您確實要使用ID E N T I F I E DBY 時,該口令串應該是直接量,GRANT 將對口令進行編碼。當用SET PA S S W O R D語句時,不要使用PASSWORD() 函數。

WITH GRANT OPTION 子句是可選的。如果包含該子句,該用戶可以將GRANT 語句授予的任何權限授予其他的用戶。可以使用該子句將授權的能力授予其他的用戶。

這些就是我要為大家介紹的MySQL數據庫的用戶帳號管理基礎知識的全部內容,要想學好MySQL數據庫的操作,就應首先從基礎做起,這篇文章對很多初學者來說是很好的選擇。

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