有2個不同的方法增加使用者:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用GRANT語句,因為他們是更簡明並且好像錯誤少些。
下面的例子顯示出如何使用MySQL客戶安裝新使用者。這些例子假定許可權根據以前的章節描述的預設被安裝。這意味著為了改變,你必須在MySQL正在運行同一台機器上,你必須作為MySQL root使用者串連,並且root使用者必須對MySQL資料庫有insert許可權和reload系統管理權限。另外,如果你改變了root使用者口令,你必須如下的MySQL命令指定它。
你可以通過發出GRANT語句增加新使用者:
複製代碼 代碼如下:shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
這些GRANT語句安裝3個新使用者:
monty:可以從任何地方串連伺服器的一個完全的超級使用者,但是必須使用一個口令('something'做這個。注意,我們必須對monty@localhost和monty@"%"發出GRANT語句。如果我們增加localhost條目,對localhost的匿名使用者條目在我們從本地主機串連接時由mysql_install_db建立的條目將優先考慮,因為它有更特定的Host欄位值,所以以user表排列順序看更早到來。
admin:可以從localhost沒有一個口令進行串連並且被授予reload和process系統管理權限的使用者。這允許使用者執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,還有mysqladmin processlist。沒有授予資料庫有關的許可權。他們能在以後通過發出另一個GRANT語句授權。
dummy:可以不用一個口令串連的一個使用者,但是只能從本地主機。全域許可權被設定為'N'--USAGE權限類別型允許你無需許可權就可設定一個使用者。它假定你將在以後授予資料庫相關的許可權。
你也可以直接通過發出INSERT語句增加同樣的使用者存取資訊,然後告訴伺服器再次裝入授權表:
複製代碼 代碼如下:shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;