利用 GRANT 語(yǔ)句進(jìn)行授權(quán)。
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為梓潼企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),梓潼網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
具體步驟如下:
1、首先使用一個(gè)沒(méi)有權(quán)限的賬號(hào)鏈接mysql,成功之后執(zhí)行:show databases;這時(shí)會(huì)發(fā)現(xiàn)沒(méi)有權(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ì)顯示出來(lái),而且使用該賬號(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;
phpmyadmin設(shè)置mysql數(shù)據(jù)庫(kù)用戶權(quán)限可以參考如下操作步驟。
1、用瀏覽器打開phpmyadmin,輸入用戶名和密碼登錄。
2、在左側(cè)選擇要設(shè)置權(quán)限的數(shù)據(jù)庫(kù),并點(diǎn)擊權(quán)限。
3、在彈出的窗口單擊“編輯權(quán)限”。
4、進(jìn)入權(quán)限設(shè)置頁(yè)面,根據(jù)需要設(shè)置權(quán)限。
5、設(shè)置完成,點(diǎn)擊右下角的“執(zhí)行”,更新權(quán)限。
背景
在了解動(dòng)態(tài)權(quán)限之前,我們先回顧下 MySQL 的權(quán)限列表。
權(quán)限列表大體分為服務(wù)級(jí)別和表級(jí)別,列級(jí)別以及大而廣的角色(也是MySQL 8.0 新增)存儲(chǔ)程序等權(quán)限。我們看到有一個(gè)特殊的 SUPER 權(quán)限,可以做好多個(gè)操作。比如 SET 變量,在從機(jī)重新指定相關(guān)主機(jī)信息以及清理二進(jìn)制日志等。那這里可以看到,SUPER 有點(diǎn)太過(guò)強(qiáng)大,導(dǎo)致了僅僅想實(shí)現(xiàn)子權(quán)限變得十分困難,比如用戶只能 SET 變量,其他的都不想要。那么 MySQL 8.0 之前沒(méi)法實(shí)現(xiàn),權(quán)限的細(xì)分不夠明確,容易讓非法用戶鉆空子。
那么 MySQL 8.0 把權(quán)限細(xì)分為靜態(tài)權(quán)限和動(dòng)態(tài)權(quán)限,下面我畫了兩張?jiān)敿?xì)的區(qū)分圖,圖 1 為靜態(tài)權(quán)限,圖 2 為動(dòng)態(tài)權(quán)限。
圖 1- MySQL 靜態(tài)權(quán)限的權(quán)限管理圖
圖 2-動(dòng)態(tài)權(quán)限圖
那我們看到其實(shí)動(dòng)態(tài)權(quán)限就是對(duì) SUPER 權(quán)限的細(xì)分。 SUPER 權(quán)限在未來(lái)將會(huì)被廢棄掉。
我們來(lái)看個(gè)簡(jiǎn)單的例子,
比如, 用戶 'ytt2@localhost', 有 SUPER 權(quán)限。
mysql show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)
但是現(xiàn)在我只想這個(gè)用戶有 SUPER 的子集,設(shè)置變量的權(quán)限。那么單獨(dú)給這個(gè)用戶賦予兩個(gè)能設(shè)置系統(tǒng)變量的動(dòng)態(tài)權(quán)限,完了把 SUPER 給拿掉。
mysql grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)
我們看到這個(gè) WARNINGS 提示 SUPER 已經(jīng)廢棄了。
mysql show warnings;
+---------+------+----------------------------------------------+
| Level ? | Code | Message ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+---------+------+----------------------------------------------+
| Warning | 1287 | The SUPER privilege identifier is deprecated |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)`
mysql show grants for ytt2@'localhost';
+-----------------------------------------------------------------------------------+
| Grants for ytt2@localhost ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+-----------------------------------------------------------------------------------+
| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost ? ? ? ? ?|
| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |
+-----------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
當(dāng)然圖 2 上還有其它的動(dòng)態(tài)權(quán)限,這里就不做特別說(shuō)明了。
1、創(chuàng)建新用戶
通過(guò)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,可以在本地訪問(wèn)mysql
grant all privileges on *.* to testuser@"%" identified by "123456" ; //設(shè)置用戶testuser,可以在遠(yuǎn)程訪問(wèn)mysql
flush privileges ;//mysql 新設(shè)置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權(quán)限相關(guān)表,否則會(huì)出現(xiàn)拒絕訪問(wèn),還有一種方法,就是重新啟動(dòng)mysql服務(wù)器,來(lái)使新設(shè)置生效
2、設(shè)置用戶訪問(wèn)數(shù)據(jù)庫(kù)權(quán)限
grant all privileges on test_db.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只能訪問(wèn)數(shù)據(jù)庫(kù)test_db,其他數(shù)據(jù)庫(kù)均不能訪問(wèn) ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,可以訪問(wèn)mysql上的所有數(shù)據(jù)庫(kù) ;
grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" ;//設(shè)置用戶testuser,只能訪問(wèn)數(shù)據(jù)庫(kù)test_db的表user_infor,數(shù)據(jù)庫(kù)中的其他表均不能訪問(wèn) ;
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)限 ;
網(wǎng)站標(biāo)題:mysql怎么設(shè)置權(quán)限 mysql訪問(wèn)權(quán)限設(shè)置
本文URL:http://www.rwnh.cn/article10/doohigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站維護(hù)、、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)