溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL的用戶和權(quán)限如何管理

發(fā)布時(shí)間:2020-05-22 17:03:04 來(lái)源:網(wǎng)絡(luò) 閱讀:167 作者:三月 欄目:數(shù)據(jù)庫(kù)

下面講講關(guān)于MySQL的用戶和權(quán)限如何管理,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL的用戶和權(quán)限如何管理這篇文章你一定會(huì)有所受益。

MySQL的用戶賬號(hào): 用戶名@主機(jī)

主機(jī)格式: 

  1. 主機(jī)名 www.node1.com


  2. IP: 172.16.139.2

       172.16.0.0/255.255.255

       192.16.%.%


  3. 通配符:172.16.%.%

        %.node1.com


Mysql賬號(hào)的唯一目的就是在用戶連接MySQL云服務(wù)器時(shí),進(jìn)行用戶的登錄認(rèn)證,而要在登錄后進(jìn)行一些數(shù)據(jù)訪問(wèn)、操作等,還要另外進(jìn)行授權(quán)


MySQL進(jìn)程在啟動(dòng)時(shí)會(huì)讀取以下六個(gè)權(quán)限表


user:用戶賬號(hào),全局權(quán)限

db:庫(kù)級(jí)別權(quán)限

tables_priv:表級(jí)別權(quán)限

columns_priv:列級(jí)別權(quán)限

procs_priv:存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)相關(guān)權(quán)限

proxies_priv:代理用戶權(quán)限


權(quán)限級(jí)別: 全局級(jí)別 庫(kù) 表 列 存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)


觸發(fā)器:主動(dòng)數(shù)據(jù)庫(kù),當(dāng)執(zhí)行insert、delete、update時(shí)會(huì)自動(dòng)觸發(fā)另外自定義的操作;如向user表中插入數(shù)據(jù)時(shí),定義往log表中插入時(shí)間值,往user表中插入數(shù)據(jù)。


創(chuàng)建一個(gè)叫做faker的用戶,密碼為123

>create user faker@'127.0.0.1' identified by '123';


mysql> show grants for faker@'127.0.0.1'; 查看faker在127.0.0.1的權(quán)限為usage,只能登陸和做簡(jiǎn)                             單的查看

+----------------------------------------------+

| Grants for faker@127.0.0.1                                                                                   |

+----------------------------------------------+

| GRANT USAGE ON *.* TO 'faker'@'127.0.0.1'

 IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |


為用戶授權(quán):

user表中host列的值的意義

%            匹配所有主機(jī)

localhost      localhost不會(huì)被解析成IP地址,直接通過(guò)UNIXsocket連接

127.0.0.1      會(huì)通過(guò)TCP/IP協(xié)議連接,并且只能在本機(jī)訪問(wèn);

::1          ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1


priv_level:

       * 所有庫(kù)

       *.* 所有庫(kù)的所有表

       test.* test庫(kù)下的所有表

       test1  test1表

       db_name.toutine_name 某個(gè)表的存儲(chǔ)過(guò)程/存儲(chǔ)函數(shù)


設(shè)置權(quán)限時(shí)必須給出以下信息

1,要授予的權(quán)限

2,被授予訪問(wèn)權(quán)限的數(shù)據(jù)庫(kù)或表

3,用戶名


grant和revoke可以在幾個(gè)層次上控制訪問(wèn)權(quán)限

1,整個(gè)云服務(wù)器,使用 grant ALL  和revoke  ALL (revolve收回權(quán)限)

2,整個(gè)數(shù)據(jù)庫(kù),使用on  database.*

3,特點(diǎn)表,使用on  database.table

4,特定的列

5,特定的存儲(chǔ)過(guò)程

 

grant 命令 on 庫(kù).表 to user;


>grant select, insert, update, delete on testdb.* to faker@’%’

grant 普通數(shù)據(jù)用戶,查詢、插入、更新、刪除 數(shù)據(jù)庫(kù)中所有表數(shù)據(jù)的權(quán)利。


>grant select on testdb.* to common_user@’%’


>grant insert on testdb.* to common_user@’%’


>grant update on testdb.* to common_user@’%’


>grant delete on testdb.* to common_user@’%’


或者,用一條 MySQL 命令來(lái)替代:


>grant select, insert, update, delete on testdb.* to common_user@’%’


grant 數(shù)據(jù)庫(kù)開(kāi)發(fā)人員,創(chuàng)建表、索引、視圖、存儲(chǔ)過(guò)程、函數(shù)等權(quán)限。


grant 創(chuàng)建、修改、刪除 MySQL 數(shù)據(jù)表結(jié)構(gòu)權(quán)限。


>grant create on testdb.* to developer@’192.168.0.%’;


>grant alter on testdb.* to developer@’192.168.0.%’;


>grant drop on testdb.* to developer@’192.168.0.%’;


grant 操作 MySQL 外鍵權(quán)限。


>grant references on testdb.* to developer@’192.168.0.%’;


grant 操作 MySQL 臨時(shí)表權(quán)限。


>grant create temporary tables on testdb.* to developer@’192.168.0.%’;


grant 操作 MySQL 索引權(quán)限。


>grant index on testdb.* to developer@’192.168.0.%’;


grant 操作 MySQL 視圖、查看視圖源代碼 權(quán)限。


>grant create view on testdb.* to developer@’192.168.0.%’;


>grant show view on testdb.* to developer@’192.168.0.%’;


最后

>flush privileges;

刷新權(quán)限后,可能要重新登錄才生效


刪除用戶

>drop user faker@'127.0.0.1'; 將faker用戶刪除


改用戶名

>rename user faker@'127.0.0.1' to sky@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)


權(quán)限收回

>revoke 'select' on test.my from faker@'127.0.0.1';

收回faker用戶在test庫(kù)中my表的select權(quán)限


MySQL登錄忘記密碼怎么辦?


[root@node1 ~]# vim /etc/init.d/mysqld 

1.找到下面這行

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &


2.在上面行中加入 --skip-grant-tables(跳過(guò)認(rèn)證)

3.在重啟mysqld服務(wù)

4.最后重新登錄不要密碼就可以連接上去

對(duì)于以上MySQL的用戶和權(quán)限如何管理相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI