綠色資源網:您身邊(biān)最放心的安全下載站! 最新軟件(jiàn)|熱門排行|軟件分類|軟件專題|廠商大(dà)全

綠色資源網

技(jì)術教程
您(nín)的位置:首頁(yè)數據庫類MySQL → 數據庫基礎:MySQL 添加用戶的兩種方法

數據庫基礎:MySQL 添加用(yòng)戶的兩種方法(fǎ)

我要評論 2009/06/07 12:00:12 來源:綠色資源網 編輯:佚名 [ ] 評論:0 點擊(jī):573次

有2個不同的方法增加用戶:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用(yòng)GRANT語句(jù),因為他們是更(gèng)簡明(míng)並(bìng)且好(hǎo)像錯誤少些。

下麵的例子顯示出(chū)如何使(shǐ)用MySQL客(kè)戶安裝新用(yòng)戶。這些例子假定權(quán)限已缺省被安裝。這意味著為了改(gǎi)變,你必須在MySQL正在運行同一(yī)台機器上,你必須作為MySQL root用戶連接(jiē),並且root用(yòng)戶必須(xū)對MySQL數據庫有insert權限和(hé)reload管理權限。另外,如果(guǒ)你改變了(le)root用戶口令,你必須如(rú)下的MySQL命令指定它。

你可以通過發(fā)出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;

這些(xiē)GRANT語句安裝3個新用戶:

monty:可以從任何地方連接服務(wù)器的一個(gè)完全的(de)超級用戶(hù),但是必須使用(yòng)一個口令('something'做這個。注意,我(wǒ)們必(bì)須對monty@localhost和monty@"%"發出GRANT語句。如果我們增加localhost條目(mù),對localhost的匿(nì)名用戶條目在我們從本地主機連接接時(shí)由mysql_install_db創建的條目將(jiāng)優先考慮,因為它有更特定的Host字段值,所以以user表排列順序(xù)看更早到來。

admin:可以(yǐ)從localhost沒有一個口令進行連接(jiē)並且被授(shòu)予reload和process管理權限(xiàn)的用戶。這允許用戶執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,還有mysqladmin processlist。沒有授予數據庫(kù)有關的權限(xiàn)。他們能在以後通(tōng)過發出另一個GRANT語句(jù)授權。

dummy:可以不用一個口令連接的一個用戶,但是隻能從(cóng)本地主機。全局權限被設置為'N'--USAGE權限類型允許你無需權限就可設置一(yī)個用戶。它假定你將在以後授予數據(jù)庫相關的權限。

你也可以(yǐ)直接通(tōng)過發出INSERT語句增加同樣的用戶存取信息(xī),然後告訴服務器再次裝入授權表:

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版本,對(duì)上述,你可能必須使用一個(gè)不(bú)同數(shù)目'Y'值(在3.22.11以前的版本有更少的權限列(liè))。對(duì)admin用戶,隻用在3.22.11開始的版本具有(yǒu)的更加可讀的INSERT擴(kuò)充的(de)語法。

注意,為了(le)設置一個超級用戶,你隻需(xū)創造一個user表條(tiáo)目,其(qí)權限字段設為'Y'。不需(xū)要db或host表的條目。

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

下列例子增加一個用(yòng)戶custom,他能從主機 localhost、server.domain和whitehouse.gov連接。他隻想要從localhost存取bankaccount數據庫,從whitehouse.gov存取expenses數據庫和從所有3台主機存取customer數據庫。他想要(yào)從(cóng)所有(yǒu)3台主機上使(shǐ)用口令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';

通過直接修改授(shòu)權表(biǎo)設置用戶權限,運行這些命令(lìng)(注意,在結束時(shí)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;

頭(tóu)3個INSERT語句增加user表條目,允許用戶 custom用給定口(kǒu)令從不同的主機(jī)進行連接(jiē),但是沒有(yǒu)授予任何(hé)許可(kě)(所有權限被設置為缺(quē)省值'N')。後3個INSERT語(yǔ)句(jù)增加(jiā)db表條目,授予 custom以bankaccount、expenses和customer數據(jù)庫權限,但是隻能在從(cóng)正確的主機(jī)存取時。通常,在授權表直接被修改時,服務器必須被告知再次裝入他們(用FLUSH PRIVILEGES)以便(biàn)使權限修改生效。 如果你想要給特定的用戶從一個給定的域上的任何機器上存取權限(xiàn),你可以發出一個如下的GRANT語句:

mysql> GRANT ...

ON *.*

TO myusername@"%.mydomainname.com"

IDENTIFIED BY 'mypassword';

為了通過直接(jiē)修改授權(quán)表做同樣的事情,這樣做:

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',

PASSWORD('mypassword'),...);

mysql> FLUSH PRIVILEGES;

你也可以使用xmysqladmin、mysql_webadmin甚至xmysql在授權表中插入、改(gǎi)變和更新值。你可以在MySQL的Contrib目錄(lù)找到這些實用程序。

關鍵(jiàn)詞:數據庫,MySQL

閱讀本文後您有什麽感想(xiǎng)? 已有 人給出評價(jià)!

  • 0 歡迎喜歡(huān)
  • 0 白癡
  • 0 拜托
  • 0 哇(wa)
  • 2 加油
  • 0 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡