1、創(chuàng)建新用戶
網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了十多年的創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司。
通過root用戶登錄之后創(chuàng)建
grant all privileges on *.* to testuser@localhost identified by "123456" ;//創(chuàng)建新用戶,用戶名為testuser,密碼為123456 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,可以在本地訪問mysql
grant all privileges on *.* to testuser@"%" identified by "123456" ; //設(shè)置用戶testuser,可以在遠(yuǎn)程訪問mysql
flush privileges ;//mysql 新設(shè)置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權(quán)限相關(guān)表,否則會(huì)出現(xiàn)拒絕訪問,還有一種方法,就是重新啟動(dòng)mysql服務(wù)器,來使新設(shè)置生效
2、設(shè)置用戶訪問數(shù)據(jù)庫(kù)權(quán)限
grant all privileges on test_db.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只能訪問數(shù)據(jù)庫(kù)test_db,其他數(shù)據(jù)庫(kù)均不能訪問 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,可以訪問mysql上的所有數(shù)據(jù)庫(kù) ;
grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只能訪問數(shù)據(jù)庫(kù)test_db的表user_infor,數(shù)據(jù)庫(kù)中的其他表均不能訪問 ;
3、設(shè)置用戶操作權(quán)限
grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//設(shè)置用戶testuser,擁有所有的操作權(quán)限,也就是管理員 ;
grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//設(shè)置用戶testuser,只擁有【查詢】操作權(quán)限 ;
grant select,insert on *.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只擁有【查詢\插入】操作權(quán)限 ;
grant select,insert,update,delete on *.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只擁有【查詢\插入】操作權(quán)限 ;
REVOKE select,insert ON what FROM testuser//取消用戶testuser的【查詢\插入】操作權(quán)限 ;
利用 GRANT 語句進(jìn)行授權(quán)。
具體步驟如下:
1、首先使用一個(gè)沒有權(quán)限的賬號(hào)鏈接mysql,成功之后執(zhí)行:show databases;這時(shí)會(huì)發(fā)現(xiàn)沒有權(quán)限的用戶只能看到一個(gè)數(shù)據(jù)庫(kù),mysql和test等數(shù)據(jù)庫(kù)是看不到的;
2、如果已經(jīng)安裝了phpmyadmin,打開127.0.0.1/phpmyadmin,在菜單欄找到用戶,然后找到?jīng)]有權(quán)限的用戶,點(diǎn)擊編輯權(quán)限;
3、跳轉(zhuǎn)到設(shè)置頁(yè)面,找到全局權(quán)限,在全選checkbox打勾,點(diǎn)擊右下角的執(zhí)行,完成后該用戶就獲得了mysql數(shù)據(jù)庫(kù)的所有權(quán)限;
4、再次用該賬號(hào)再次鏈接mysql,鏈接成功后執(zhí)行:show databases;你會(huì)發(fā)現(xiàn)所有數(shù)據(jù)庫(kù)都會(huì)顯示出來,而且使用該賬號(hào)可以進(jìn)行任意編輯;
5、也可以直接在cmd窗口命令行設(shè)置,設(shè)置權(quán)限的命令為:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
MySQL命令行能否實(shí)現(xiàn)新建用戶呢?答案無疑是肯定的。而且在使用使用MySQL命令行新建用戶后,還可以為用戶授予權(quán)限。
首先要聲明一下:一般情況下,修改MySQL密碼,授權(quán),是需要有mysql里的root權(quán)限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同樣適用。
用戶:phplamp
用戶數(shù)據(jù)庫(kù):phplampDB
1.MySQL命令行新建用戶
//登錄MYSQL
@mysql -u root -p
@密碼
//創(chuàng)建用戶
mysql insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
//刷新系統(tǒng)權(quán)限表
mysqlflush privileges;
這樣就創(chuàng)建了一個(gè)名為:phplamp 密碼為:1234 的用戶。
//退出后登錄一下
mysqlexit;
@mysql -u phplamp -p
@輸入密碼
mysql登錄成功
2.MySQL命令行為用戶授權(quán)
//登錄MYSQL(有ROOT權(quán)限)。我里我以ROOT身份登錄.
@mysql -u root -p
@密碼
//首先為用戶創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)(phplampDB)
mysqlcreate database phplampDB;
//授權(quán)phplamp用戶擁有phplamp數(shù)據(jù)庫(kù)的所有權(quán)限
@grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //這里需要注意,如果發(fā)現(xiàn)找不到用戶,需要執(zhí)行命令 flush privilieges;
//刷新系統(tǒng)權(quán)限表
mysqlflush privileges;
mysql其它操作
//如果想指定部分權(quán)限給一用戶,可以這樣來寫:
mysqlgrant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系統(tǒng)權(quán)限表。
mysqlflush privileges;
mysql grant 權(quán)限1,權(quán)限2,…權(quán)限n on 數(shù)據(jù)庫(kù)名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
權(quán)限1,權(quán)限2,…權(quán)限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個(gè)權(quán)限。
當(dāng)權(quán)限1,權(quán)限2,…權(quán)限n被all privileges或者all代替,表示賦予用戶全部權(quán)限。
當(dāng)數(shù)據(jù)庫(kù)名稱.表名稱被*.*代替,表示賦予用戶操作服務(wù)器上所有數(shù)據(jù)庫(kù)所有表的權(quán)限。
用戶地址可以是localhost,也可以是ip地址、機(jī)器名字、域名。也可以用’%'表示從任何地址連接。
‘連接口令’不能為空,否則創(chuàng)建失敗。
例如:
mysqlgrant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)數(shù)據(jù)庫(kù)vtdc的employee表進(jìn)行select,insert,update,delete,create,drop等操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)數(shù)據(jù)庫(kù)vtdc所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)所有數(shù)據(jù)庫(kù)的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on *.* to joe@localhost identified by ‘123′;
給本機(jī)用戶joe分配可對(duì)所有數(shù)據(jù)庫(kù)的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。