最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL數(shù)據(jù)庫管理之權(quán)限管理解讀

 更新時(shí)間:2023年03月20日 09:20:30   作者:李雄  
這篇文章主要介紹了MYSQL數(shù)據(jù)庫管理之權(quán)限管理解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

工作中經(jīng)常遇到mysql權(quán)限不會搞或者在QQ群或者論壇上問關(guān)于mysql權(quán)限的問題,今天抽空總結(jié)一下關(guān)于這斷時(shí)間使用MYSQL的時(shí)候關(guān)于MYSQL數(shù)據(jù)庫的權(quán)限管理的經(jīng)驗(yàn)。

一、MYSQL權(quán)限簡介

關(guān)于mysql的權(quán)限簡單的理解就是mysql允許你做你權(quán)利以內(nèi)的事情,不可以越界。比如只允許你執(zhí)行select操作,那么你就不能執(zhí)行update操作。

只允許你從某臺機(jī)器上連接mysql,那么你就不能從除那臺機(jī)器以外的其他機(jī)器連接mysql。

那么MYSQL的權(quán)限是如何實(shí)現(xiàn)的呢?這就要說到mysql的兩階段的驗(yàn)證,下面詳細(xì)來介紹:

第一階段:服務(wù)器首先會檢查你是否允許連接。因?yàn)閯?chuàng)建用戶的時(shí)候會加上主機(jī)限制,可以限制成本地、某個(gè)IP、某個(gè)IP段、以及任何地方等,只允許你從配置的指定地方登錄。后面在實(shí)戰(zhàn)的時(shí)候會詳細(xì)說關(guān)于主機(jī)的限制。

第二階段:如果你能連接,MYSQL會檢查你發(fā)出的每個(gè)請求,看你是否有足夠的權(quán)限實(shí)施它。比如你要更新某個(gè)表、或者查詢某個(gè)表,MYSQL會檢查你對哪個(gè)表或者某個(gè)列是否有權(quán)限。再比如,你要運(yùn)行某個(gè)存儲過程,MYSQL會檢查你對存儲過程是否有執(zhí)行權(quán)限等。

1.MYSQL到底都有哪些權(quán)限呢?

從官網(wǎng)復(fù)制一個(gè)表來看看:

權(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)限選項(xiàng)

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ù)器主機(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ù)庫權(quán)限

SHUTDOWN

服務(wù)器管理

關(guān)閉數(shù)據(jù)庫權(quán)限

SUPER

服務(wù)器管理

執(zhí)行kill線程權(quán)限

2.MYSQL的權(quán)限如何分布

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

權(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是如何驗(yàn)證的(兩階段驗(yàn)證),以及mysql各個(gè)權(quán)限是做什么用的,以及那些權(quán)限用在什么地方(表or列?)。

如果這些把握了那么MYSQL權(quán)限對你來說就是小菜一碟了,只要看一下后面的權(quán)限管理就可以融會貫通了。        

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

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

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

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

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

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

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

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

1.GRANT命令使用說明

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

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

GRANT命令說明:

  • ALL PRIVILEGES 是表示所有權(quán)限,你也可以使用select、update等權(quán)限提到的權(quán)限。
  • ON 用來指定權(quán)限針對哪些庫和表。
  • *.* 中前面的*號用來指定數(shù)據(jù)庫名,后面的*號用來指定表名。
  • 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)限。

2.創(chuàng)建一個(gè)超級用戶

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

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

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

創(chuàng)建一個(gè)一般的程序用戶,這個(gè)用戶可能只需要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';

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

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

5.刷新權(quán)限

使用這個(gè)命令使權(quán)限生效,尤其是你對那些權(quán)限表user、db、host等做了update或者delete更新的時(shí)候。

以前遇到過使用grant后權(quán)限沒有更新的情況,大家可以養(yǎng)成習(xí)慣,只要對權(quán)限做了更改就使用FLUSH PRIVILEGES命令來刷新權(quán)限。

FLUSH PRIVILEGES;

6.查看權(quán)限

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

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

7.回收權(quán)限

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

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

8.刪除用戶

注意刪除用戶不要使用DELETE直接刪除,因?yàn)槭褂肈ELETE刪除后用戶的權(quán)限并未刪除,新建同名用戶后又會繼承以前的權(quán)限。

正確的做法是使用DROP USER命令刪除用戶,比如要刪除'webuser'@'192.168.100.%'用戶采用如下命令:

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

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL去重的方法整理

    MySQL去重的方法整理

    這篇文章主要介紹了MySQL去重的方法整理的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • MySQL中in與exists的使用及區(qū)別介紹

    MySQL中in與exists的使用及區(qū)別介紹

    這篇文章主要介紹了MySQL中in與exists的使用及區(qū)別介紹,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • 如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    這篇文章主要介紹了如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Centos6.5在線安裝mysql 8.0詳細(xì)教程

    Centos6.5在線安裝mysql 8.0詳細(xì)教程

    這篇文章主要為大家介紹了Centos6.5在線安裝 mysql 8.0詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南

    VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南

    鑒于MySQL數(shù)據(jù)庫的流行與強(qiáng)大,決定多學(xué)習(xí)使用,下面這篇文章主要給大家介紹了關(guān)于VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • C#實(shí)現(xiàn)MySQL命令行備份和恢復(fù)

    C#實(shí)現(xiàn)MySQL命令行備份和恢復(fù)

    MySQL數(shù)據(jù)庫的備份有很多工具可以使用,今天介紹一下使用C#調(diào)用MYSQL的mysqldump命令完成MySQL數(shù)據(jù)庫的備份與恢復(fù)
    2018-03-03
  • Mysql主從復(fù)制與讀寫分離圖文詳解

    Mysql主從復(fù)制與讀寫分離圖文詳解

    這篇文章主要給大家介紹了關(guān)于Mysql主從復(fù)制與讀寫分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL動態(tài)字符串處理DYNAMIC_STRING

    MySQL動態(tài)字符串處理DYNAMIC_STRING

    本文主要給大家簡單講解了mysql如何使用DYNAMIC_STRING來進(jìn)行動態(tài)字符串的保存,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-10-10
  • Mac下安裝mysql5.7.18的詳細(xì)步驟

    Mac下安裝mysql5.7.18的詳細(xì)步驟

    這篇文章主要為大家詳細(xì)介紹了]Mac下安裝mysql5.7.18的詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Mysql添加用戶和設(shè)置權(quán)限的操作方法

    Mysql添加用戶和設(shè)置權(quán)限的操作方法

    這篇文章主要介紹了Mysql添加用戶和設(shè)置權(quán)限的操作方法,主要包括管理用戶,權(quán)限控制的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評論

南川市| 紫阳县| 曲靖市| 明溪县| 东辽县| 台南市| 南雄市| 镇宁| 左贡县| 和林格尔县| 晋州市| 海城市| 平度市| 新郑市| 青海省| 玉林市| 长汀县| 巩义市| 临汾市| 禹州市| 安溪县| 新闻| 安庆市| 汉源县| 辉南县| 桂平市| 西盟| 鄂尔多斯市| 微山县| 阿克陶县| 明溪县| 周口市| 萨嘎县| 如东县| 平泉县| 清水县| 若羌县| 禄劝| 通榆县| 吉安县| 明水县|