mysql怎么給城市權(quán)限 mysql設(shè)置權(quán)限

mysql 權(quán)限設(shè)置

背景

武川ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

在了解動態(tài)權(quán)限之前,我們先回顧下 MySQL 的權(quán)限列表。

權(quán)限列表大體分為服務(wù)級別和表級別,列級別以及大而廣的角色(也是MySQL 8.0 新增)存儲程序等權(quán)限。我們看到有一個特殊的 SUPER 權(quán)限,可以做好多個操作。比如 SET 變量,在從機重新指定相關(guān)主機信息以及清理二進制日志等。那這里可以看到,SUPER 有點太過強大,導致了僅僅想實現(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)

當然圖 2 上還有其它的動態(tài)權(quán)限,這里就不做特別說明了。

mysql局域網(wǎng)訪問權(quán)限怎么設(shè)置

第一:更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項,從”localhost”改稱'%'。

或者新加條記錄,“host” 項為要訪問的ip地址,并授權(quán)。重啟mysql服務(wù)。

第二:在系統(tǒng)防火墻添加例外端口:3306,并允許例外。錯誤提示:

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server

的解決方法: 1。 改表法??赡苁悄愕膸ぬ柌辉试S從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"

mysql -u root -pvmwaremysqluse mysql;mysqlupdate user set host = '%' where user = 'root';mysqlselect host, user from user; 2. 授權(quán)法。例如,你想myuser使用mypassword從任何主機連接到mysql服務(wù)器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務(wù)器,并使用mypassword作為密碼

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

3.在window自帶的防火墻里的例外添加3306端口

總結(jié):mysql -u root -p

mysqluse mysql;

mysqlselect 'host' from user where user='root';

mysqlupdate user set host = '%' where user ='root';

mysqlflush privileges;

mysqlselect 'host' from user where user='root';

第一句是以權(quán)限用戶root登錄

第二句:選擇mysql庫

第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)

第四句:修改host值(以通配符%的內(nèi)容增加主機/IP地址),當然也可以直接增加IP地址

第五句:刷新MySQL的系統(tǒng)權(quán)限相關(guān)表

第六句:再重新查看user表時,有修改。。

重起mysql服務(wù)即可完成。

mysql 如何設(shè)置權(quán)限

用ROOT賬戶登陸(有權(quán)限對整個數(shù)據(jù)庫操作的賬戶)點權(quán)限設(shè)置,然后添加一用戶 。在Database for user 那里選擇Create database with same name and grant all privileges 如果只是想指定它對其中一數(shù)據(jù)庫有管理權(quán)限就不要選擇全局權(quán)限中的任何一項 ,點執(zhí)行 完成創(chuàng)建 ,下面就是新建一數(shù)據(jù)庫,在點權(quán)限設(shè)置 ,在“按數(shù)據(jù)庫指定權(quán)限”那里把你剛新建的數(shù)據(jù)庫選擇上,點執(zhí)行就可以了!這樣你新建的賬戶只對該數(shù)據(jù)庫有完全控制的權(quán)限,對其他用戶也沒訪問權(quán)限!

如何給mysql用戶分配權(quán)限

1,Mysql下創(chuàng)建新的用戶

語法:

1.create user 用戶名 identified by '密碼';

例:create user xiaogang identified by '123456';

新創(chuàng)建的用戶,默認情況下是沒有任何權(quán)限的。

2. 如何給用戶分配權(quán)限

語法:

1.grant 權(quán)限 on 數(shù)據(jù)庫.數(shù)據(jù)表 to '用戶' @ '主機名';

例:給 xiaogang 分配所有的權(quán)限

grant all on *.* to 'xiaogang'@'%';

這個時候 xiaogang 就擁有了 所有權(quán)限了

3 如何更精準的控制用戶的權(quán)限呢?

1.grant 權(quán)限 on 數(shù)據(jù)庫.數(shù)據(jù)表 to '用戶' @ '主機名';

例:讓 xiaogang 有查詢 tmp 數(shù)據(jù)庫 tmp1 表的權(quán)限;

grant select on temp.temp1 to 'xiaogang'@'%'; //這個時候 xiaogang 就具有查詢temp小的temp1的權(quán)限了。

本文名稱:mysql怎么給城市權(quán)限 mysql設(shè)置權(quán)限
本文來源:http://muchs.cn/article6/doeocig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站設(shè)計公司App開發(fā)、網(wǎng)站排名、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)