久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MYSQL數(shù)據(jù)庫(kù)管理中怎么實(shí)現(xiàn)權(quán)限管理

共計(jì) 3409 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。

本篇文章為大家展示了 MYSQL 數(shù)據(jù)庫(kù)管理中怎么實(shí)現(xiàn)權(quán)限管理,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

MYSQL 權(quán)限簡(jiǎn)介

關(guān)于 mysql 的權(quán)限簡(jiǎn)單的理解就是 mysql 允許你做你權(quán)利以內(nèi)的事情, 不可以越界。比如只允許你執(zhí)行 select 操作,那么你就不能執(zhí)行 update 操作。只允許你從某臺(tái)機(jī)器上連接 mysql,那么你就不能從除那臺(tái)機(jī)器以外的其他機(jī)器連接 mysql。
那么 MYSQL 的權(quán)限是如何實(shí)現(xiàn)的呢?這就要說到 mysql 的兩階段的驗(yàn)證,下面詳細(xì)來介紹:第一階段:服務(wù)器首先會(huì)檢查你是否允許連接。因?yàn)閯?chuàng)建用戶的時(shí)候會(huì)加上主機(jī)限制,可以限制成本地、某個(gè) IP、某個(gè) IP 段、以及任何地方等,只允許你從配置的指定地方登錄。后面在實(shí)戰(zhàn)的時(shí)候會(huì)詳細(xì)說關(guān)于主機(jī)的限制。第二階段:如果你能連接,MYSQL 會(huì)檢查你發(fā)出的每個(gè)請(qǐng)求,看你是否有足夠的權(quán)限實(shí)施它。比如你要更新某個(gè)表、或者查詢某個(gè)表,MYSQL 會(huì)檢查你對(duì)哪個(gè)表或者某個(gè)列是否有權(quán)限。再比如,你要運(yùn)行某個(gè)存儲(chǔ)過程,MYSQL 會(huì)檢查你對(duì)存儲(chǔ)過程是否有執(zhí)行權(quán)限等。

到底都有哪些權(quán)限呢?從官網(wǎng)復(fù)制一個(gè)表來看看:

權(quán)限權(quán)限級(jí)別權(quán)限說明
CREATE
數(shù)據(jù)庫(kù)、表或索引
創(chuàng)建數(shù)據(jù)庫(kù)、表或索引權(quán)限
DROP
數(shù)據(jù)庫(kù)或表
刪除數(shù)據(jù)庫(kù)或表權(quán)限
GRANT OPTION
數(shù)據(jù)庫(kù)、表或保存的程序
賦予權(quán)限選項(xiàng)
REFERENCES
數(shù)據(jù)庫(kù)或表
 
ALTER
更改表,比如添加字段、索引等
DELETE
刪除數(shù)據(jù)權(quán)限
INDEX
索引權(quán)限
INSERT
插入權(quán)限
SELECT
查詢權(quán)限
UPDATE
更新權(quán)限
CREATE VIEW
創(chuàng)建視圖權(quán)限
SHOW VIEW
查看視圖權(quán)限
ALTER ROUTINE
存儲(chǔ)過程
更改存儲(chǔ)過程權(quán)限
CREATE ROUTINE
存儲(chǔ)過程
創(chuàng)建存儲(chǔ)過程權(quán)限
EXECUTE
存儲(chǔ)過程
執(zhí)行存儲(chǔ)過程權(quán)限
FILE
服務(wù)器主機(jī)上的文件訪問
文件訪問權(quán)限
CREATE TEMPORARY TABLES
服務(wù)器管理
創(chuàng)建臨時(shí)表權(quán)限
LOCK TABLES
服務(wù)器管理
鎖表權(quán)限
CREATE USER
服務(wù)器管理
創(chuàng)建用戶權(quán)限
PROCESS
服務(wù)器管理
查看進(jìn)程權(quán)限
RELOAD
 
 
服務(wù)器管理
執(zhí)行 flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload 等命令的權(quán)限
REPLICATION CLIENT
服務(wù)器管理
復(fù)制權(quán)限
REPLICATION SLAVE
服務(wù)器管理
復(fù)制權(quán)限
SHOW DATABASES
服務(wù)器管理
查看數(shù)據(jù)庫(kù)權(quán)限
SHUTDOWN
服務(wù)器管理
關(guān)閉數(shù)據(jù)庫(kù)權(quán)限
SUPER
服務(wù)器管理
執(zhí)行 kill 線程權(quán)限

的權(quán)限如何分布,就是針對(duì)表可以設(shè)置什么權(quán)限,針對(duì)列可以設(shè)置什么權(quán)限等等,這個(gè)可以從官方文檔中的一個(gè)表來說明:

權(quán)限分布
可能的設(shè)置的權(quán)限
Select , Insert , Update , Delete , Create , Drop , Grant , References , Index , Alter
Select , Insert , Update , References
過程權(quán)限
Execute , Alter Routine , Grant

針對(duì)權(quán)限這部分,最主要的是要知道 MYSQL 是如何驗(yàn)證的(兩階段驗(yàn)證),以及 mysql 各個(gè)權(quán)限是做什么用的,以及那些權(quán)限用在什么地方 (表 or 列?)。如果這些把握了那么 MYSQL 權(quán)限對(duì)你來說就是小菜一碟了,只要看一下后面的權(quán)限管理就可以融會(huì)貫通了。
 

MYSQL 權(quán)限經(jīng)驗(yàn)原則

權(quán)限控制主要是出于安全因素,因此需要遵循一下幾個(gè)經(jīng)驗(yàn)原則:

只授予能滿足需要的最小權(quán)限,防止用戶干壞事。哈哈。比如用戶只是需要查詢,那就只給 select 權(quán)限就可以了,不要給用戶賦予 update、insert 或者 delete 權(quán)限。

創(chuàng)建用戶的時(shí)候限制用戶的登錄主機(jī),一般是限制成指定 IP 或者內(nèi)網(wǎng) IP 段。

初始化數(shù)據(jù)庫(kù)的時(shí)候刪除沒有密碼的用戶。安裝完數(shù)據(jù)庫(kù)的時(shí)候會(huì)自動(dòng)創(chuàng)建一些用戶,這些用戶默認(rèn)沒有密碼。

為每個(gè)用戶設(shè)置滿足密碼復(fù)雜度的密碼。

定期清理不需要的用戶。回收權(quán)限或者刪除用戶。

MYSQL 權(quán)限實(shí)戰(zhàn)

GRANT 命令使用說明

先來看一個(gè)例子,創(chuàng)建一個(gè)只允許從本地登錄的超級(jí)用戶 feihong,并允許將權(quán)限賦予別的用戶,密碼為 test@feihong.111

GRANT ALL PRIVILEGES ON *.* TO feihong@ localhost IDENTIFIED BY test@feihong.111 WITH GRANT OPTION;

命令說明:

ALL PRIVILEGES 是表示所有權(quán)限,你也可以使用 select、update 等權(quán)限提到的權(quán)限。
ON 用來指定權(quán)限針對(duì)哪些庫(kù)和表。
*.* 中前面的 * 號(hào)用來指定數(shù)據(jù)庫(kù)名,后面的 * 號(hào)用來指定表名。
TO 表示將權(quán)限賦予某個(gè)用戶。
feihong@ localhost 表示 feihong 用戶,@后面接限制的主機(jī),可以是 IP、IP 段、域名以及 %,% 表示任何地方。注意:這里 % 有的版本不包括本地,以前碰到過給某個(gè)用戶設(shè)置了 % 允許任何地方登錄,但是在本地登錄不了,這個(gè)和版本有關(guān)系,遇到這個(gè)問題再加一個(gè) localhost 的用戶就可以了。
IDENTIFIED BY 指定用戶的登錄密碼。
WITH GRANT OPTION 這個(gè)選項(xiàng)表示該用戶可以將自己擁有的權(quán)限授權(quán)給別人。注意:經(jīng)常有人在創(chuàng)建操作用戶的時(shí)候不指定 WITH GRANT OPTION 選項(xiàng)導(dǎo)致后來該用戶不能使用 GRANT 命令創(chuàng)建用戶或者給其他用戶授權(quán)。
備注:可以使用 GRANT 重復(fù)給用戶添加權(quán)限,權(quán)限疊加,比如你先給用戶添加了一個(gè) select 權(quán)限,然后又給用戶添加了一個(gè) insert 權(quán)限,那么該用戶就同時(shí)擁有了 select 和 insert 權(quán)限。

創(chuàng)建一個(gè)超級(jí)用戶

創(chuàng)建一個(gè)只允許從本地登錄的超級(jí)用戶 feihong,并允許將權(quán)限賦予別的用戶,密碼為 test@feihong.111

GRANT ALL PRIVILEGES ON *.* TO feihong@ localhost IDENTIFIED BY test@feihong.111 WITH GRANT OPTION;

創(chuàng)建一個(gè)網(wǎng)站用戶 (程序用戶)

創(chuàng)建一個(gè)一般的程序用戶,這個(gè)用戶可能只需要 SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES 等權(quán)限如果有存儲(chǔ)過程還需要加上 EXECUTE 權(quán)限,一般是指定內(nèi)網(wǎng)網(wǎng)段 192.168.100 網(wǎng)段。

GRANT USAGE,SELECT, INSERT, UPDATE, DELETE, SHOW VIEW ,CREATE TEMPORARY TABLES,EXECUTE ON `test`.* TO webuser@ 192.168.100.% IDENTIFIED BY test@feihong.111

創(chuàng)建一個(gè)普通用戶 (僅有查詢權(quán)限)

GRANT USAGE,SELECT ON `test`.* TO public@ 192.168.100.% IDENTIFIED BY public@feihong.111

刷新權(quán)限

使用這個(gè)命令使權(quán)限生效,尤其是你對(duì)那些權(quán)限表 user、db、host 等做了 update 或者 delete 更新的時(shí)候。以前遇到過使用 grant 后權(quán)限沒有更新的情況,大家可以養(yǎng)成習(xí)慣,只要對(duì)權(quán)限做了更改就使用 FLUSH PRIVILEGES 命令來刷新權(quán)限。

FLUSH PRIVILEGES;

查看權(quán)限

使用如下命令可以方便的查看到某個(gè)用戶的權(quán)限:

SHOW GRANTS FOR webuser @ 192.168.100.%

回收權(quán)限

將前面創(chuàng)建的 webuser 用戶的 DELETE 權(quán)限回收,使用如下命令

REVOKE DELETE ON test.* FROM webuser @ 192.168.100.%

刪除用戶

注意刪除用戶不要使用 DELETE 直接刪除,因?yàn)槭褂?DELETE 刪除后用戶的權(quán)限并未刪除,新建同名用戶后又會(huì)繼承以前的權(quán)限。正確的做法是使用 DROP USER 命令刪除用戶,比如要?jiǎng)h除 webuser @ 192.168.100.% 用戶采用如下命令:

DROP USER webuser @ 192.168.100.%

 
大家可以采用 percona-toolkit 工具中的 pt-show-grants 工具來輔助管理 mysql 權(quán)限。

上述內(nèi)容就是 MYSQL 數(shù)據(jù)庫(kù)管理中怎么實(shí)現(xiàn)權(quán)限管理,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)3409字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 积石山| 中阳县| 旬邑县| 古交市| 炎陵县| 阿拉善盟| 上高县| 平陆县| 芷江| 清河县| 武陟县| 开封市| 庐江县| 特克斯县| 云南省| 锦州市| 东乡族自治县| 庄浪县| 金华市| 札达县| 馆陶县| 湖北省| 澄江县| 汾西县| 富阳市| 河池市| 石阡县| 河西区| 康保县| 车险| 浦东新区| 凤台县| 嘉祥县| 肇源县| 巨鹿县| 水城县| 芜湖市| 榆中县| 柘城县| 肇源县| 镇远县|