溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

發(fā)布時間:2020-05-09 11:29:54 來源:億速云 閱讀:219 作者:三月 欄目:數(shù)據(jù)庫

下面跟著筆者一起來了解下MySQL之?dāng)?shù)據(jù)控制語言DCL,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL之?dāng)?shù)據(jù)控制語言DCL這篇短內(nèi)容是你想要的。

我們使用DDL的"CREATE USER"語句創(chuàng)建用戶,新的SQL用戶不允許訪問屬于其他SQL用戶的表,也不能立即創(chuàng)建自己的表,它必須被授權(quán)??梢允谟璧臋?quán)限包括以下幾組:

1.列權(quán)限:和表中的一個具體列相關(guān)

2.表權(quán)限:和一個具體數(shù)據(jù)表中所有數(shù)據(jù)相關(guān)

3.數(shù)據(jù)庫權(quán)限:和一個具體數(shù)據(jù)庫中所有數(shù)據(jù)表相關(guān)

4.用戶權(quán)限:和MySQL所有的數(shù)據(jù)庫相關(guān)

可以使用SHOW GRANTS命令查看當(dāng)前用戶的權(quán)限。

SHOW GRANTS;/顯示當(dāng)前用戶權(quán)限
SHOW GRANTS FOR 'pinnsvin'@'localhost';/顯示指定用戶權(quán)限
SHOW GRANTS FOR CURRENT_USER();/顯示當(dāng)前用戶權(quán)限

1.GRANT授權(quán)語句

語法:

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...    ON [object_type] priv_level    TO user_specification [, user_specification] ...    [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]    [WITH {GRANT OPTION | resource_option} ...]/代理GRANT PROXY ON user_specification    TO user_specification [, user_specification] ...    [WITH GRANT OPTION]/聯(lián)級授權(quán),選了此項,該用戶有權(quán)將自己的權(quán)限授予自己創(chuàng)建的子用戶/授權(quán)目標(biāo)對象類型
object_type: {    TABLE
  | FUNCTION
  | PROCEDURE}
/授權(quán)目標(biāo)
priv_level: {    *
  | *.*
  | db_name.*
  | db_name.tbl_name  | tbl_name  | db_name.routine_name
}
/授權(quán)用戶
user_specification:    user [ auth_option ]auth_option: {
    IDENTIFIED BY 'auth_string' 
  | IDENTIFIED BY PASSWORD 'hash_string'
  | IDENTIFIED WITH auth_plugin  | IDENTIFIED WITH auth_plugin AS 'hash_string'}
/SSL設(shè)置
ssl_option: {
    SSL  | X509  | CIPHER 'cipher'
  | ISSUER 'issuer'
  | SUBJECT 'subject'}

resource_option: {  | MAX_QUERIES_PER_HOUR count /允許用戶每小時執(zhí)行的查詢語句數(shù)量
  | MAX_UPDATES_PER_HOUR count /允許用戶每小時執(zhí)行更新語句數(shù)量
  | MAX_CONNECTIONS_PER_HOUR count /允許用戶每小時連接的次數(shù)
  | MAX_USER_CONNECTIONS count /允許用戶同時連接云服務(wù)器的數(shù)量}

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

實例:

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

/先要創(chuàng)建一個用戶,創(chuàng)建了一個名為jeffrey,登錄主機(jī)為localhost,密碼為mypass的用戶CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';/授予了用戶jeffrey@localhost對數(shù)據(jù)庫db1下所有數(shù)據(jù)表所有操作權(quán)限GRANT ALL ON db1.* TO 'jeffrey'@'localhost';/授予了用戶'jeffrey'@'localhost'對數(shù)據(jù)庫db2下invoice數(shù)據(jù)表的查詢權(quán)限GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';/USAGE意指無權(quán)限,用戶jeffrey@localhost 在一個小時內(nèi)只有90次查詢權(quán)限GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

2.REVOKE撤銷授權(quán)語句

語法:

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

REVOKE
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...    ON [object_type] priv_level    FROM user [, user] ...REVOKE ALL PRIVILEGES, GRANT OPTION
    FROM user [, user] ...
/授權(quán)代理REVOKE PROXY ON user
    FROM user [, user] ...

簡單認(rèn)識MySQL之?dāng)?shù)據(jù)控制語言DCL

實例:
/撤回了用戶jeffrey@localhost對數(shù)據(jù)庫db1下所有數(shù)據(jù)表所有操作權(quán)限REVOKE ALL ON db1.* FROM 'jeffrey'@'localhost';/撤回了用戶'jeffrey'@'localhost'對數(shù)據(jù)庫db2下invoice數(shù)據(jù)表的查詢權(quán)限REVOKE SELECT ON db2.invoice FROM 'jeffrey'@'localhost';

看完MySQL之?dāng)?shù)據(jù)控制語言DCL這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI