本文實(shí)例講述了MySQL用戶(hù)與權(quán)限的管理。分享給大家供大家參考,具體如下:
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為赤峰企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,赤峰網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
用戶(hù)連接到MySQL,可以做各種查詢(xún),這都是MySQL用戶(hù)與權(quán)限功能在背后維持著操作。
用戶(hù)與數(shù)據(jù)庫(kù)服務(wù)器交互數(shù)據(jù),分為兩個(gè)階段:
(1)你有沒(méi)有權(quán)連接上來(lái)
(2)你有沒(méi)有權(quán)執(zhí)行本操作
1、你有沒(méi)有權(quán)連接上來(lái)
服務(wù)器如何判斷用戶(hù)有沒(méi)有權(quán)連接上來(lái)?
依據(jù):
1)你從哪里來(lái)?host
2)你是誰(shuí)?user
3)你的密碼是多少?password
用戶(hù)的這三個(gè)信息,存儲(chǔ)在mysql庫(kù)中的user表中。
修改host域,使IP可以連接
mysql>update user set host='192.168.137.123' where user = 'root'; mysql>flush privileges; --沖刷權(quán)限
修改用戶(hù)密碼
mysql>update user set password=password('11111111') where xxx; mysql>flush privileges; --沖刷權(quán)限
2、你有沒(méi)有權(quán)執(zhí)行本操作
在mysql中,有一個(gè)庫(kù)是mysql庫(kù),在這個(gè)庫(kù)中有三個(gè)表,一個(gè)是user表,user表中存儲(chǔ)了所有用戶(hù)的權(quán)限信息。一個(gè)是db表,db表存儲(chǔ)的是所有用戶(hù)在數(shù)據(jù)庫(kù)層的權(quán)限信息。一個(gè)是tables_priv表,tables_priv表存儲(chǔ)的是所有用戶(hù)在表層的權(quán)限信息。
用戶(hù)登錄,user表首先能限制用戶(hù)登錄,其次還保存了該用戶(hù)的全局權(quán)限,如果該用戶(hù)沒(méi)有任何權(quán)限,那么將從db表中查找該用戶(hù)是否有某個(gè)數(shù)據(jù)庫(kù)的操作權(quán)限,如果都沒(méi)有,將從table_priv表中查找該用戶(hù)是否有某個(gè)表的操作權(quán)限,如果有,則該用戶(hù)可以按照已有的權(quán)限來(lái)操作該表。
1)全局授權(quán)和收回
全局授權(quán)格式:
grant [權(quán)限1,權(quán)限2,權(quán)限3] on *.* to user@'host' identified by 'password'
常用權(quán)限:all、create、drop、select、insert、delete、update
授權(quán):
創(chuàng)建lisi用戶(hù),host為192.168.191.%,%通配符表示192.168.191.xxx結(jié)尾的主機(jī)都可以連接,密碼為12345678。
grant all on *.* to lisi@'192.168.191.%' identified by '12345678';
收回權(quán)限:
revoke all on *.* from lisi@'192.168.191.%';
2)數(shù)據(jù)庫(kù)級(jí)授權(quán)和收回
需求:讓lisi用戶(hù)擁有mysqlmaster數(shù)據(jù)庫(kù)的所有操作權(quán)限
授權(quán):
grant all on mysqlmaster.* to lisi@'192.168.191.%' identified by '12345678';
收回:
revoke all on mysqlmaster.* from lisi@'192.168.191.%';
3)表級(jí)授權(quán)和收回
需求:讓lisi用戶(hù)具有mysqlmaster數(shù)據(jù)庫(kù)下的goods表的insert、update、select三個(gè)操作的權(quán)限。
授權(quán):
grant insert,update,select on mysqlmaster.goods to lisi@'192.168.191.%' identified by '12345678';
收回:
revoke insert,update,select on mysqlmaster.goods from lisi@'192.168.191.%';
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL查詢(xún)技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。