MySQL數據庫中使用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;

取決于你的MySQL版本,對上述,你可能必須使用一個不同數目'Y'值(在3.22.11以前的版本有更少的權限列)。對admin用戶,只用在3.22.11開始的版本具有的更加可讀的INSERT擴充的語法。

注意,爲了設置一個超級用戶,你只需創造一個user表條目,其權限字段設爲'Y'。不需要db或host表的條目。

在user表中的權限列不是由最後一個INSERT語句明確設置的(對dummy用戶),因此那些列被賦予缺省值'N'。這是GRANT USAGE做的同樣的事情。

下列例子增加一個用戶custom,他能從主機localhost、server.domain和whitehouse.gov連接。他只想要從 localhost存取bankaccount數據庫,從whitehouse.gov存取expenses數據庫和從所有3台主機存取customer 數據庫。他想要從所有3台主機上使用口令stupid。

爲了使用GRANT語句設置個用戶的權限,運行這些命令:

shell> mysql --user=root mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.* TO custom@whitehouse.gov IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO custom@'%' IDENTIFIED BY 'stupid';

通過直接修改授權表設置用戶權限,運行這些命令(注意,在結束時FLUSH PRIVILEGES):

shell> mysql --user=root mysql mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('stupid')); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES;

 
使用用VB處理MYSQL數據庫中二進制數據問題
'XP Professional SP2 + VB6.0 + MYSQL5.0 + MySql ODBC 3.51' 使用ADO 將ACCESS數據庫中的表導入到MYSQL數據庫中 Dim AdoRst As New ADODB.Recordset 'MySql 數據庫的ST表 Dim Adoact As New ADODB....查看完整版>>使用用VB處理MYSQL數據庫中二進制數據問題
 
MySQL數據庫中mysqldump命令使用詳解
MySQL有很多可以導入數據的方法,然而這些只是數據傳輸中的一半,另外的一般是從MySQL數據庫中導出數據。有許多的原因我們需要導出數據。一個重要的原因是用于備份數據庫。數據的造價常常是昂貴的,需要謹慎處理它們...查看完整版>>MySQL數據庫中mysqldump命令使用詳解
 
MySQL數據庫中如何解決分組統計的問題
首先准備四張表A、B、C、D, -------------------------------- A  | B  | C  | D a b | a c | a d | d e 1 1 | 1 1 | 1 A | A 1 2 ...查看完整版>>MySQL數據庫中如何解決分組統計的問題
 
MySQL數據庫中Show命令的用法
MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中對show命令的使用還容易産生混淆,本文主要介紹了show命令的主要用法。 a. show tables或show tables from database_name; -- 顯示當前數據庫中所有表...查看完整版>>MySQL數據庫中Show命令的用法
 
檢查Oracle數據庫中不合理的sql語句
  代碼:   select sql_text ,sharable_mem from v$sql where sharable_mem '100000' order by sharable_mem ;       上面的sql語句是查詢shared pool中占用內存超過100K的sql語句。    ...查看完整版>>檢查Oracle數據庫中不合理的sql語句
 
· 臨近國慶,李小璐與女兒在天安門前合影

http://image.wangchao.net.cn/users/...

· 震驚!原來酒駕處罰這麽嚴重

酒駕處罰標准 不要有任何一絲僥幸心理! http://image....

· 把年齡相仿的獅虎熊放一起,誰更厲害?結果出人意料

很多人都想知道獅子、老虎和熊打起來誰最厲害,于是便有好事之人把這三種動物關在一起...