mysql權(quán)限怎么開(kāi) mysql如何設(shè)置權(quán)限

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

用戶管理

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

mysqluse mysql;

查看

mysql select host,user,password from user ;

創(chuàng)建

mysql create user zx_root IDENTIFIED by 'xxxxx'; //identified by 會(huì)將純文本密碼加密作為散列值存儲(chǔ)

修改

mysqlrename user feng to newuser;//mysql 5之后可以使用,之前需要使用update 更新user表

刪除

mysqldrop user newuser; //mysql5之前刪除用戶時(shí)必須先使用revoke 刪除用戶權(quán)限,然后刪除用戶,mysql5之后drop 命令可以刪除用戶的同時(shí)刪除用戶的相關(guān)權(quán)限

更改密碼

mysql set password for zx_root =password('xxxxxx');

mysql update mysql.user set password=password('xxxx') where user='otheruser'

查看用戶權(quán)限

mysql show grants for zx_root;

賦予權(quán)限

mysql grant select on dmc_db.* to zx_root;

回收權(quán)限

mysql revoke select on dmc_db.* from zx_root; //如果權(quán)限不存在會(huì)報(bào)錯(cuò)

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

背景

在了解動(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ō)明了。

mysql賬號(hào)安全權(quán)限過(guò)大怎么辦

打開(kāi)mysql命令行。鍵入以下命令后回車。

1、繼續(xù)鍵入以下命令后回車。

2、然后重新登錄mysql即可。

怎么給mysql開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限

1、改表法。

可能是你的帳號(hào)不允許從遠(yuǎn)程登陸,只能在localhost。這個(gè)時(shí)候只要在localhost的那臺(tái)電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫(kù)里的 "user" 表里的 "host" 項(xiàng),從"localhost"改稱"%"

mysql -u root -pvmwaremysqluse mysql;

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

mysqlselect host, user from user;

2、授權(quán)法。例如,你想myuser使用mypassword從任何主機(jī)連接到mysql服務(wù)器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI

TH GRANT OPTION;

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

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY

'mypassword' WITH GRANT OPTION;

我用的第一個(gè)方法,剛開(kāi)始發(fā)現(xiàn)不行,在網(wǎng)上查了一下,少執(zhí)行一個(gè)語(yǔ)句 mysqlFLUSH RIVILEGES

使修改生效,就可以了

另外一種方法:

在安裝mysql的機(jī)器上運(yùn)行:

1、d:\mysql\bin\mysql -h localhost -u root

//這樣應(yīng)該可以進(jìn)入MySQL服務(wù)器

2、mysqlGRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

//賦予任何主機(jī)訪問(wèn)數(shù)據(jù)的權(quán)限

3、mysqlFLUSH PRIVILEGES

//修改生效

4、mysqlEXIT

//退出MySQL服務(wù)器

這樣就可以在其它任何的主機(jī)上以root身份登錄啦。

分享名稱:mysql權(quán)限怎么開(kāi) mysql如何設(shè)置權(quán)限
本文來(lái)源:http://bm7419.com/article24/dohppje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、云服務(wù)器定制開(kāi)發(fā)、建站公司面包屑導(dǎo)航、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(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)

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