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

MySQL用戶和數(shù)據(jù)權(quán)限管理詳解

 更新時(shí)間:2022年08月25日 09:58:17   作者:遇安.112  
這篇文章主要為大家詳細(xì)介紹了MySQL數(shù)據(jù)庫(kù)管理中的用戶和數(shù)據(jù)權(quán)限管理,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)MySQL有一定幫助,需要的可以參考一下

1、管理用戶

1.1、添加用戶

可以使用CREATE USER語(yǔ)句添加一個(gè)或多個(gè)用戶,并設(shè)置相應(yīng)的密碼

語(yǔ)法格式:

CREATE USER 用戶名 [IDENTIFIED BY [PASSWORD]'密碼']

CREATE USER用于創(chuàng)建新的MySQL賬戶。CREATE USER會(huì)在系統(tǒng)本身的mysql數(shù)據(jù)庫(kù)的user表中添加一個(gè)新記錄。要使用CREATE USER,必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或INSERT權(quán)限。如果賬戶已經(jīng)存在,則出現(xiàn)錯(cuò)誤(報(bào)錯(cuò))。

例:添加一個(gè)新用戶usr1,密碼為123456 

CREATE USER usr1@localhost IDENTIFIED BY'123456';

在用戶名的后面聲明了關(guān)鍵字localhost。該關(guān)鍵字指定用戶創(chuàng)建所使用的MySQL服務(wù)器來(lái)自于主機(jī)。如果一個(gè)用戶名和主機(jī)名中包含特殊符號(hào)_或通配符%,則需要用單引號(hào)將其括起,%表示一組主機(jī)。

1.2、刪除用戶

語(yǔ)法格式:

DROP USER 用戶名

要使用該語(yǔ)句,必須有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或DELETE權(quán)限。DROP USER語(yǔ)句用于刪除一個(gè)或多個(gè)MySQL賬戶,并取消其權(quán)限。

例:刪除用戶usr1 

DROP USER usr1@localhost;

1.3、修改用戶名

語(yǔ)法格式:

RENAME USER 舊用戶名 TO 新用戶名

要使用該語(yǔ)句,必須有全局CREATE USER權(quán)限或mysql數(shù)據(jù)庫(kù)的UPDATE權(quán)限。如果舊賬戶不存在或者新賬戶已存在,則會(huì)出現(xiàn)錯(cuò)誤(報(bào)錯(cuò))。該語(yǔ)句用于對(duì)原有MySQL賬戶進(jìn)行重命名,可以一次對(duì)多個(gè)用戶更名。

例:將用戶usr1和usr2的名字分別修改為user1和user2 

RENAME USER
usr1@localhost TO user1@localhost,
usr2@localhost TO user2@localhost;

1.4、修改密碼

語(yǔ)法格式:

SET PASSWORD [ FOR 用戶名 ]=PASSWORD('新密碼')

如果不加FOR用戶名,表示修改當(dāng)前用戶的密碼。加了FOR用戶名則是修改當(dāng)前主機(jī)上的特定用戶的密碼。用戶名的值必須以u(píng)ser_name@host_name的格式給定。

例:將用戶user1的密碼修改為king 

SET PASSWORD FOR user1@localhost=PASSWORD('king');

2、授予權(quán)限和回收權(quán)限

2.1、授予權(quán)限

新的SQL用戶不允許訪問(wèn)屬于其他SQL用戶的表,也不能立即創(chuàng)建自己的表,它必須被授權(quán),可以授予的權(quán)限有以下幾組:

1、列權(quán)限:和表中的一個(gè)具體列相關(guān)。例如,使用UPDATE語(yǔ)句更新表Book書號(hào)列值的權(quán)限。

2、表權(quán)限:和一個(gè)具體表中的所有數(shù)據(jù)相關(guān)。例如,使用SELECT語(yǔ)句查詢表Book所有數(shù)據(jù)的權(quán)限。

3、數(shù)據(jù)庫(kù)權(quán)限:和一個(gè)具體的數(shù)據(jù)庫(kù)中所有表相關(guān)。例如,在已有的Bookstore數(shù)據(jù)庫(kù)中創(chuàng)建新表的權(quán)限。

4、用戶權(quán)限:和MySQL所有的數(shù)據(jù)庫(kù)相關(guān)。例如,刪除已有的數(shù)據(jù)庫(kù)或者創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)的權(quán)限。

給某用戶授予權(quán)限可以使用GRANT語(yǔ)句。使用SHOW GRANTS語(yǔ)句可以查看當(dāng)前賬戶擁有的權(quán)限。

語(yǔ)法格式:

GRANT 權(quán)限1[(列名列表1)][,權(quán)限2[(列名列表2)]...
ON [目標(biāo)]{表名 | * | *.* | 庫(kù)名.*}
TO 用戶1 [IDENTIFIED BY [PASSWORD]'密碼1']
[,用戶2 [IDENTIFIED BY [PASSWORD]'密碼2']]...
[WITH 權(quán)限限制1[權(quán)限限制2]...]

2.1.1、授予表權(quán)限

授予表權(quán)限時(shí),權(quán)限可以是以下值:

1、SELECT:授予用戶使用SELECT語(yǔ)句訪問(wèn)特定表(或視圖)的權(quán)力。對(duì)于視圖,用戶必須對(duì)視圖中指定的每個(gè)表(或視圖)都有SELECT權(quán)限。

2、INSERT:授予用戶使用INSERT語(yǔ)句向一個(gè)特定表中添加行的權(quán)力

3、DELETE:授予用戶使用DELETE語(yǔ)句向一個(gè)特定表中刪除行的權(quán)力

4、UPDATE:授予用戶使用UPDATE語(yǔ)句修改特定表中值的權(quán)力

5、REFERENCES:授予用戶創(chuàng)建一個(gè)外鍵來(lái)參照特定的表的權(quán)力

6、CREATE:授予用戶使用特定的名字創(chuàng)建一個(gè)表的權(quán)力

7、ALTER:授予用戶使用ALTER TABLE語(yǔ)句修改表的權(quán)力

8、INDEX:授予用戶在表上定義索引的權(quán)力

9、DROP:授予用戶刪除表的權(quán)力

10、ALL或ALL PRIVILEGES:表示所有權(quán)限

在授予表權(quán)限時(shí),ON關(guān)鍵字后面跟表名,指定授予權(quán)限的為表名或視圖名

例:授予用戶user1在Book表上的SELECT權(quán)限 

USE Bookstore;
GRANT SELECT
ON Book
TO user1@localhost;

這里假設(shè)是在root用戶輸入了這些語(yǔ)句,這樣用戶user1就可以使用SELECT語(yǔ)句來(lái)查詢Book表,而不管是誰(shuí)創(chuàng)建了該表。

若在TO子句中給存在的用戶指定密碼,則新密碼將原密碼覆蓋。如果權(quán)限授予了一個(gè)不存在的用戶,MySQL會(huì)自動(dòng)執(zhí)行一條CREATE USER語(yǔ)句來(lái)創(chuàng)建這個(gè)用戶,但必須為該用戶指定密碼。

例:用戶liu和zhang不存在,授予他們?cè)贐ook表上的SELECT和UPDATE權(quán)限 

GRANT SELECT,UPDATE
ON Book
TO liu@localhost IDENTIFIED BY'123456',
zhang@localhost IDENTIFIED BY'123';

2.1.2、授予列權(quán)限

對(duì)于列權(quán)限,權(quán)限的值只能取SELECT、INSERT和UPDATE。權(quán)限的后面需要加上列名列表。

例:授予user1在Book表上的圖書編號(hào)列和書名列的UPDATE權(quán)限。

GRANT UPDATE(圖書編號(hào),書名)
ON Book
TO user1@localhost;

2.1.3、授予數(shù)據(jù)庫(kù)權(quán)限

表權(quán)限適用于一個(gè)特定的表,MySQL還支持針對(duì)整個(gè)數(shù)據(jù)庫(kù)的權(quán)限。授予數(shù)據(jù)庫(kù)權(quán)限時(shí),權(quán)限可以是以下值:

1、SELECT:授予用戶使用SELECT語(yǔ)句訪問(wèn)特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)力

2、INSERT:授予用戶使用INSERT語(yǔ)句向特定數(shù)據(jù)庫(kù)所有表中添加行的權(quán)力

3、DELETE:授予用戶使用DELETE語(yǔ)句在特定數(shù)據(jù)庫(kù)所有表中刪除行的權(quán)力

4、UPDATE:授予用戶使用UPDATE語(yǔ)句更新特定數(shù)據(jù)庫(kù)所有表中值的權(quán)力

5、REFERENCES:授予用戶創(chuàng)建指向特定數(shù)據(jù)庫(kù)中的表外鍵的權(quán)力

6、CREATE:授予用戶使用CREATE TABLE語(yǔ)句在特定數(shù)據(jù)庫(kù)中創(chuàng)建新表的權(quán)力

7、ALTER:授予用戶使用ALTER TABLE語(yǔ)句修改特定數(shù)據(jù)庫(kù)中所有表的結(jié)構(gòu)的權(quán)力

8、INDEX:授予用戶在特定數(shù)據(jù)庫(kù)中的所有表上定義和刪除索引的權(quán)力

9、DROP:授予用戶刪除特定數(shù)據(jù)庫(kù)中所有表和視圖的權(quán)力

10、CREATE TEMPORARY TABLES:授予用戶在特定數(shù)據(jù)庫(kù)中創(chuàng)建臨時(shí)表的權(quán)力

11、CREATE VIEW:授予用戶在特定數(shù)據(jù)庫(kù)中創(chuàng)建新視圖的權(quán)力

12、SHOW VIEW:授予用戶查看特定數(shù)據(jù)庫(kù)中已有視圖的視圖定義的權(quán)力

13、CREATE ROUTINE:授予用戶為特定數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)力

14、ALTER ROUTINE:授予用戶更新和刪除數(shù)據(jù)庫(kù)中已有存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)力

15、EXECUTE ROUTINE:授予用戶調(diào)用特定數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的權(quán)力

16、LOOK TABLES:授予用戶鎖定特定數(shù)據(jù)庫(kù)中已有表的權(quán)力

17、ALL或ALL PRIVILEGES:表示以上所有權(quán)限

在GRANT語(yǔ)法格式中,授予數(shù)據(jù)庫(kù)權(quán)限時(shí)ON關(guān)鍵字后面跟*和“庫(kù)名.*”。*表示當(dāng)前數(shù)據(jù)庫(kù)中的所有表。“庫(kù)名.*”表示某個(gè)數(shù)據(jù)庫(kù)中的所有表。

例:授予user1在Bookstore數(shù)據(jù)庫(kù)中所有表的SELECT權(quán)限 

GRANT SELECT
ON Bookstore.*
TO user1@localhost;

2.1.4、授予用戶權(quán)限

最有效率的權(quán)限就是用戶權(quán)限,可以將授予數(shù)據(jù)庫(kù)的權(quán)限直接授予用戶,使用戶獲得對(duì)服務(wù)器上所有數(shù)據(jù)庫(kù)的該權(quán)限。

MySQL授予用戶權(quán)限時(shí)權(quán)限還可以是以下值:

1、CREATE USER:授予用戶創(chuàng)建和刪除新用戶的權(quán)限

2、SHOW DATABASES:授予用戶使用SHOW DATABASES語(yǔ)句查看所有已有數(shù)據(jù)庫(kù)的定義的權(quán)力

在GRANT語(yǔ)法格式中,授予用戶權(quán)限時(shí)ON子句中使用“*.*”,表示所有數(shù)據(jù)庫(kù)的所有表

例:授予user2對(duì)所有數(shù)據(jù)庫(kù)中所有表的CREATE、ALTERT和DROP權(quán)限 

GRANT CREATE,ALTER,DROP
ON *.*
TO user2@localhost IDENTIFIED BY'123456';

例:授予user2創(chuàng)建新用戶的權(quán)限

GRANT CREATE USER
ON *.*
TO user2@localhost;

2.2、權(quán)限的轉(zhuǎn)移和限制

GRANT語(yǔ)句的最后可以使用WITH子句。如果指定權(quán)限限制為GRANT OPTION,則表示TO子句中指定的所有用戶都有把自己所擁有的權(quán)限授予其他用戶的權(quán)力,而不管其他用戶是否擁有該權(quán)限。

 例:授予user3在Book表上的SELECT權(quán)限,并允許其將該權(quán)限授予其他用戶

GRANT SELECT
ON Bookstore.Book
TO user3@localhost IDENTIFIED BY'123456'
WITH GRANT OPTION;

使用了WITH GRANT OPTION子句后,如果user3在該表上還擁有其他權(quán)限,他可以將其他權(quán)限也授予其他用戶而不僅限于SELECT。

WITH子句后的權(quán)限限制也可以對(duì)一個(gè)用戶授予使用限制,其中,MAX_QUERIES_PER_HOUR次數(shù)表示每小時(shí)可以查詢數(shù)據(jù)庫(kù)的次數(shù)。

MAX_CONNECTIONS_PER_HOUR次數(shù)表示每小時(shí)可以連接數(shù)據(jù)庫(kù)的次數(shù)。

MAX_UPDATES_PES_HOUR次數(shù)表示每小時(shí)可以修改數(shù)據(jù)庫(kù)的次數(shù)。

MAX_USER_CONNECTIONS次數(shù)表示同時(shí)連接MySQL的最大用戶數(shù)。

次數(shù)是一個(gè)數(shù)值,對(duì)于前3個(gè)權(quán)限限制指定,次數(shù)如果為0則表示不起限制作用。

例:授予D每小時(shí)只能處理一條SELECT語(yǔ)句的權(quán)限 

GRANT SELECT
ON Book
TO D@localhost
WITH MAX_QUERIES_PER_HOUR 1;

2.3、回收權(quán)限

要從一個(gè)用戶回收權(quán)限,但不從mysql數(shù)據(jù)庫(kù)的user表中刪除該用戶,可以使用REVOKE語(yǔ)句,該語(yǔ)句和GRANT語(yǔ)句格式相似,但具有相反的效果。要使用REVOKE語(yǔ)句,用戶必須擁有mysql數(shù)據(jù)庫(kù)的全局CREATE USER權(quán)限或UPDATE權(quán)限。

語(yǔ)法格式:

REVOKE 權(quán)限[(列名列表)]...
ON {表名 | * | *.* | 庫(kù)名.* }
FROM 用戶...  

REVOKE ALL PRIVILEGES,GRANT OPTION FROM 用戶

第一種格式用來(lái)回收用戶的某些特定權(quán)限,第二種格式回收用戶的所有權(quán)限

例:回收用戶user在Book表上的SELECT權(quán)限

REVOKE SELECT
ON Book
FROM user@localhost;

到此這篇關(guān)于MySQL用戶和數(shù)據(jù)權(quán)限管理詳解的文章就介紹到這了,更多相關(guān)MySQL權(quán)限管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫分離

    MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫分離

    大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫分離,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • MySQL數(shù)據(jù)庫(kù)列的增刪改實(shí)現(xiàn)方法

    MySQL數(shù)據(jù)庫(kù)列的增刪改實(shí)現(xiàn)方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)列的增刪改實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了mysql數(shù)據(jù)庫(kù)針對(duì)列的增加、修改、刪除等相關(guān)操作sql命令及使用技巧,需要的朋友可以參考下
    2019-03-03
  • Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖)詳解

    Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖)詳解

    這篇文章主要介紹了Mysql鎖之共享鎖(讀鎖)和排他鎖(寫鎖),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL ddl語(yǔ)句的使用

    MySQL ddl語(yǔ)句的使用

    這篇文章主要介紹了MySQL ddl語(yǔ)句的使用,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • mysql學(xué)習(xí)筆記之基礎(chǔ)知識(shí)

    mysql學(xué)習(xí)筆記之基礎(chǔ)知識(shí)

    本文是MySQL學(xué)習(xí)筆記系列文章的第一篇,給大家簡(jiǎn)單講解下MySQL的一些檢查操作命令,希望大家能夠喜歡
    2017-02-02
  • 從ibd文件恢復(fù)MySQL數(shù)據(jù)的操作步驟及常見(jiàn)錯(cuò)誤

    從ibd文件恢復(fù)MySQL數(shù)據(jù)的操作步驟及常見(jiàn)錯(cuò)誤

    MySQL數(shù)據(jù)恢復(fù)是數(shù)據(jù)庫(kù)管理中的一項(xiàng)重要任務(wù),尤其是在遭遇意外數(shù)據(jù)丟失、硬件故障或軟件錯(cuò)誤時(shí),下面這篇文章主要給大家介紹了關(guān)于從ibd文件恢復(fù)MySQL數(shù)據(jù)的操作步驟及常見(jiàn)錯(cuò)誤,需要的朋友可以參考下
    2024-08-08
  • win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟

    win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟

    這篇文章主要為大家詳細(xì)介紹了win2008下mysql8.0.11升級(jí)mysql8.0.17版本詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Mysql系統(tǒng)變量與狀態(tài)變量詳細(xì)介紹

    Mysql系統(tǒng)變量與狀態(tài)變量詳細(xì)介紹

    這篇文章主要介紹了Mysql系統(tǒng)變量與狀態(tài)變量詳細(xì)介紹,能夠在程序運(yùn)行過(guò)程中影響Mysql程序行為的變量稱之為系統(tǒng)變量,想了解更多相關(guān)內(nèi)容的小伙伴可以參考下面文章內(nèi)容
    2022-09-09
  • 詳解mysql三值邏輯與NULL

    詳解mysql三值邏輯與NULL

    這篇文章主要介紹了mysql三值邏輯和NULL,感興趣的同學(xué)們,可以參考下,并且把代碼實(shí)驗(yàn)一下
    2021-05-05
  • MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟記錄

    MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟記錄

    在研發(fā)過(guò)程中可能會(huì)用到將表數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)及數(shù)據(jù)遷移到另外一種數(shù)據(jù)庫(kù)中,比如說(shuō)從mysql中遷移到oracle中,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

荃湾区| 和顺县| 泊头市| 肇东市| 老河口市| 忻州市| 永清县| 石屏县| 香港| 莱阳市| 福建省| 财经| 包头市| 达州市| 巴彦淖尔市| 交口县| 乐都县| 宁南县| 齐齐哈尔市| 乌海市| 信阳市| 孙吴县| 宜宾市| 苗栗县| 常熟市| 北碚区| 溧水县| 新乡县| 专栏| 灵宝市| 库伦旗| 桦南县| 灵璧县| 津市市| 成安县| 交口县| 秦皇岛市| 鱼台县| 丽江市| 安徽省| 沁水县|