查看MySQL用戶權(quán)限: show grants for 你的用戶比如: show grants for root@'localhost';Grant 用法GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB'; GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost'; 我先按我的理解解釋一下上面兩句的意思 建立一個只可以在本地登陸的 不能操作的用用戶名 discuz 密碼為 ***** 已經(jīng)加密了的 然后第二句的意思是 ,給這個discuz用戶操作discuz數(shù)據(jù)庫的所有權(quán)限使用GRANTGRANT命令用來建立新用戶,指定用戶口令并增加用戶權(quán)限。其格式如下: mysql GRANT privileges ON what - TO user [IDENTIFIED BY password] - [WITH GRANT OPTION]; 正如你看到的源碼天空 ,在這個命令中有許多待填的內(nèi)容。讓我們逐一地對它們進行介紹,并最終給出一些例子以讓你對它們的協(xié)同工作有一個了解。 privileges是一個用逗號分隔的你想要賦予的MySQL用戶權(quán)限的列表。你可以指定的權(quán)限可以分為三種類型: 數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限: Alter: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。 Create: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。 Delete: 刪除表的記錄。 Drop: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。 INDEX: 建立或刪除索引。 Insert: 增加表的記錄。 Select: 顯示/搜索表的記錄。 Update: 修改表中已存在的記錄。 全局管理MySQL用戶權(quán)限: file: 在MySQL服務(wù)器上讀寫文件。 PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。 RELOAD: 重載訪問控制表,刷新日志等。 SHUTDOWN: 關(guān)閉MySQL服務(wù)。 特別的權(quán)限: ALL: 允許做任何事(和root一樣)。
創(chuàng)新互聯(lián)公司服務(wù)項目包括大武口網(wǎng)站建設(shè)、大武口網(wǎng)站制作、大武口網(wǎng)頁制作以及大武口網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,大武口網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到大武口省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
利用 GRANT 語句進行授權(quán)。
具體步驟如下:
1、首先使用一個沒有權(quán)限的賬號鏈接mysql,成功之后執(zhí)行:show databases;這時會發(fā)現(xiàn)沒有權(quán)限的用戶只能看到一個數(shù)據(jù)庫,mysql和test等數(shù)據(jù)庫是看不到的;
2、如果已經(jīng)安裝了phpmyadmin,打開127.0.0.1/phpmyadmin,在菜單欄找到用戶,然后找到?jīng)]有權(quán)限的用戶,點擊編輯權(quán)限;
3、跳轉(zhuǎn)到設(shè)置頁面,找到全局權(quán)限,在全選checkbox打勾,點擊右下角的執(zhí)行,完成后該用戶就獲得了mysql數(shù)據(jù)庫的所有權(quán)限;
4、再次用該賬號再次鏈接mysql,鏈接成功后執(zhí)行:show databases;你會發(fā)現(xiàn)所有數(shù)據(jù)庫都會顯示出來,而且使用該賬號可以進行任意編輯;
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;
如果你想查看單個用戶的權(quán)限,你可以:
show grants for 'usernan,me'@'host';
或者去mysql庫中DB表中查看所有的權(quán)限
背景
在了解動態(tài)權(quán)限之前,我們先回顧下 MySQL 的權(quán)限列表。
權(quán)限列表大體分為服務(wù)級別和表級別,列級別以及大而廣的角色(也是MySQL 8.0 新增)存儲程序等權(quán)限。我們看到有一個特殊的 SUPER 權(quán)限,可以做好多個操作。比如 SET 變量,在從機重新指定相關(guān)主機信息以及清理二進制日志等。那這里可以看到,SUPER 有點太過強大,導(dǎo)致了僅僅想實現(xiàn)子權(quán)限變得十分困難,比如用戶只能 SET 變量,其他的都不想要。那么 MySQL 8.0 之前沒法實現(xiàn),權(quán)限的細分不夠明確,容易讓非法用戶鉆空子。
那么 MySQL 8.0 把權(quán)限細分為靜態(tài)權(quán)限和動態(tài)權(quán)限,下面我畫了兩張詳細的區(qū)分圖,圖 1 為靜態(tài)權(quán)限,圖 2 為動態(tài)權(quán)限。
圖 1- MySQL 靜態(tài)權(quán)限的權(quán)限管理圖
圖 2-動態(tài)權(quán)限圖
那我們看到其實動態(tài)權(quán)限就是對 SUPER 權(quán)限的細分。 SUPER 權(quá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)在我只想這個用戶有 SUPER 的子集,設(shè)置變量的權(quán)限。那么單獨給這個用戶賦予兩個能設(shè)置系統(tǒ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)
我們看到這個 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 上還有其它的動態(tài)權(quán)限,這里就不做特別說明了。