您好,登錄后才能下訂單哦!
下面講講關(guān)于MySQL的用戶和權(quán)限如何管理,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL的用戶和權(quán)限如何管理這篇文章你一定會(huì)有所受益。
MySQL的用戶賬號(hào): 用戶名@主機(jī)
主機(jī)格式:
主機(jī)名 www.node1.com
IP: 172.16.139.2
172.16.0.0/255.255.255
192.16.%.%
通配符: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è)資訊板塊。
免責(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)容。