中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

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

創(chuàng)新互聯(lián)主營吳中網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,吳中h5小程序設(shè)計搭建,吳中網(wǎng)站營銷推廣歡迎吳中等地區(qū)企業(yè)咨詢

  • MYSQL權(quán)限簡介

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

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

權(quán)限權(quán)限級別權(quán)限說明
CREATE 數(shù)據(jù)庫、表或索引 創(chuàng)建數(shù)據(jù)庫、表或索引權(quán)限
DROP 數(shù)據(jù)庫或表 刪除數(shù)據(jù)庫或表權(quán)限
GRANT OPTION 數(shù)據(jù)庫、表或保存的程序 賦予權(quán)限選項
REFERENCES 數(shù)據(jù)庫或表  
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 存儲過程 更改存儲過程權(quán)限
CREATE ROUTINE 存儲過程 創(chuàng)建存儲過程權(quán)限
EXECUTE 存儲過程 執(zhí)行存儲過程權(quán)限
FILE 服務(wù)器主機上的文件訪問 文件訪問權(quán)限
CREATE TEMPORARY TABLES 服務(wù)器管理 創(chuàng)建臨時表權(quán)限
LOCK TABLES 服務(wù)器管理 鎖表權(quán)限
CREATE USER 服務(wù)器管理 創(chuàng)建用戶權(quán)限
PROCESS 服務(wù)器管理 查看進程權(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ù)庫權(quán)限
SHUTDOWN 服務(wù)器管理 關(guān)閉數(shù)據(jù)庫權(quán)限
SUPER 服務(wù)器管理 執(zhí)行kill線程權(quán)限
  1. 的權(quán)限如何分布,就是針對表可以設(shè)置什么權(quán)限,針對列可以設(shè)置什么權(quán)限等等,這個可以從官方文檔中的一個表來說明:

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

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

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

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

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

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

  3. 初始化數(shù)據(jù)庫的時候刪除沒有密碼的用戶。安裝完數(shù)據(jù)庫的時候會自動創(chuàng)建一些用戶,這些用戶默認沒有密碼。

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

  5. 定期清理不需要的用戶?;厥諜?quán)限或者刪除用戶。

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

  1. GRANT命令使用說明

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

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

  1. 命令說明:

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

  1. 創(chuàng)建一個超級用戶

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

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

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

創(chuàng)建一個一般的程序用戶,這個用戶可能只需要SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES等權(quán)限如果有存儲過程還需要加上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';

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

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

  1. 刷新權(quán)限

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

FLUSH PRIVILEGES;

  1. 查看權(quán)限

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

SHOW GRANTS FOR 'webuser'@'192.168.100.%';

  1. 回收權(quán)限

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

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

  1. 刪除用戶

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

DROP USER 'webuser'@'192.168.100.%';

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

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

文章題目:MYSQL數(shù)據(jù)庫管理中怎么實現(xiàn)權(quán)限管理
標題路徑:http://www.rwnh.cn/article22/jjedcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站策劃、虛擬主機、網(wǎng)站排名、建站公司、微信小程序

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
通榆县| 河池市| 当雄县| 东辽县| 西充县| 滨州市| 同心县| 体育| 仙桃市| 叙永县| 南宁市| 密山市| 三穗县| 嘉祥县| 江孜县| 宁强县| 浑源县| 霍林郭勒市| 青州市| 扶沟县| 平度市| 宽甸| 民县| 儋州市| 偃师市| 承德县| 朝阳县| 资阳市| 柳州市| 杂多县| 富蕴县| 南平市| 永康市| 娄烦县| 博罗县| 肥东县| 福海县| 枞阳县| 淮阳县| 常山县| 前郭尔|