首先要聲明一下:一般情況下,修改MySQL密碼,,授權(quán),,是需要有mysql里的root權(quán)限的。
一,、新建用戶 1,、新建用戶
//登錄MYSQL
@>mysql -u root -h localhost -ppassword //修改用戶授權(quán)表創(chuàng)建用戶 mysql> insert into mysql.user (Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","pppadmin",password("passwd"),'','',''); //刷新系統(tǒng)權(quán)限表 mysql>flush privileges; 這樣就創(chuàng)建了一個(gè)名為:phplamp 密碼為:passwd的用戶。 //使用新用戶登錄 mysql>exit; @>mysql -u phplamp -ppasswd mysql>登錄成功 還可以直接使用GRANT進(jìn)行用戶創(chuàng)建并授權(quán)
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO 'custom'@'localhost'
-> IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO 'custom'@'server.domain'
-> IDENTIFIED BY 'obscure';
這3個(gè)賬戶可以用于:
· 第1個(gè)賬戶可以訪問(wèn)bankaccount數(shù)據(jù)庫(kù),,但只能從本機(jī)訪問(wèn),。
· 第2個(gè)賬戶可以訪問(wèn)expenses數(shù)據(jù)庫(kù),但只能從主機(jī)whitehouse.gov訪問(wèn),。
· 第3個(gè)賬戶可以訪問(wèn)customer數(shù)據(jù)庫(kù),,但只能從主機(jī)server.domain訪問(wèn)。
2,、為用戶授權(quán) 2.1 授權(quán)原則
a.只有root用戶擁有授權(quán)表的改寫(xiě)權(quán),; b.不要把授權(quán)表的改寫(xiě)權(quán)授予除root用戶之外的其它用戶(當(dāng)然,,如果你可以用另一個(gè)用戶代替root用戶進(jìn)行管理,以增加安全性),。因?yàn)檫@樣,,用戶可以通過(guò)改寫(xiě)授權(quán)表而推翻現(xiàn)有的權(quán)限。產(chǎn)生安全漏洞,。 c.一般情況下,,你可能不會(huì)犯這個(gè)錯(cuò)誤,但是在安裝新的分發(fā), 初始授權(quán)表之后,。這個(gè)漏洞是存在的,,如果你不了解這時(shí)授權(quán)表的內(nèi)容你可能會(huì)犯錯(cuò)誤。 d.在Unix(Linux)上,,在按照手冊(cè)的指令安裝好MySQL后,,你必須運(yùn)行mysql_install_db腳本建立包含授權(quán)表的mysql數(shù)據(jù)庫(kù)和初始權(quán)限。在Windows上,,運(yùn)行分發(fā)中的Setup程序初始化數(shù)據(jù)目錄和mysql數(shù)據(jù)庫(kù),。假定服務(wù)器也在運(yùn)行。 2.2 建議 a.一般地,,建議你刪除匿名用戶記錄:
mysql> DELETE FROM user WHERE User="";
匿名訪問(wèn)被授予用戶可從本地連接名為test和任何名字以test_開(kāi)始的數(shù)據(jù)庫(kù),。匿名用戶可對(duì)數(shù)據(jù)庫(kù)做任何事情,但無(wú)管理權(quán)限,。 更進(jìn)一步,,同時(shí)刪除其他授權(quán)表中的任何匿名用戶,有User列的表有db,、tables_priv和columns_priv,。 b.要給root用戶設(shè)置密碼。 c.對(duì)所有MySQL用戶使用口令,。 如果other_user沒(méi)有口令,,任何人能簡(jiǎn)單地用mysql -u other_user db_name作為任何其它的人登錄。對(duì)客戶機(jī)/服務(wù)器應(yīng)用程序,,客戶可以指定任何用戶名是常見(jiàn)的做法,。在你運(yùn)行它以前,你可以通過(guò)編輯 mysql_install_db腳本改變所有用戶的口令,,或僅僅MySQL root的口令,,象這樣: shell> mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('new_password') -> WHERE user='root'; mysql> FLUSH PRIVILEGES; //登錄MYSQL(有ROOT權(quán)限)。我里我以ROOT身份登錄. @>mysql -u root -p密碼 //首先為用戶創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)(phplampDB) mysql>create database phplampDB; //授權(quán)phplamp用戶擁有phplamp數(shù)據(jù)庫(kù)的所有權(quán)限,。 >grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //刷新系統(tǒng)權(quán)限表 mysql>flush privileges; mysql>其它操作 如果想指定部分權(quán)限給一用戶,,可以這樣來(lái)寫(xiě): mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234'; //刷新系統(tǒng)權(quán)限表。 mysql>flush privileges; 3、刪除用戶 @>mysql -u root -p密碼 mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost"; mysql>flush privileges; //刪除用戶的數(shù)據(jù)庫(kù) mysql>drop database phplampDB; 4,、修改指定用戶密碼 @>mysql -u root -p密碼
mysql>update mysql.user set password=password('新密碼') where User="phplamp" and Host="localhost"; mysql>flush privileges; 二,、遠(yuǎn)程訪問(wèn)MySQL
1、改表法
可能是你的賬號(hào)不允許從遠(yuǎn)程登陸,,只能在localhost,。這個(gè)時(shí)候只要在localhost的那臺(tái)電腦,,登入mysql后,,更改 "mysql" 數(shù)據(jù)庫(kù)里的 "user" 表里的 "host" 項(xiàng),從"localhost"改稱(chēng)"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; 2,、授權(quán)法 例如,,你想myuser使用mypassword從任何主機(jī)連接到mysql服務(wù)器的話。 -> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; -> FLUSH PRIVILEGES; 如果你想允許用戶myuser從ip為192.168.1.6的主機(jī)連接到mysql服務(wù)器的dk數(shù)據(jù)庫(kù),,并使用mypassword作為密碼 -> GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; -> FLUSH PRIVILEGES; 另外一種方法,,在安裝mysql的機(jī)器上運(yùn)行: d:mysqlbin>mysql -h localhost -u root //這樣應(yīng)該可以進(jìn)入MySQL服務(wù)器 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //賦予任何主機(jī)訪問(wèn)數(shù)據(jù)的權(quán)限 mysql>FLUSH PRIVILEGES //修改生效 mysql>EXIT //退出MySQL服務(wù)器 這樣就可以在其它任何的主機(jī)上以root身份登錄啦! |
|