您好,登錄后才能下訂單哦!
下面跟著筆者一起來了解下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)限
語法:
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ù)量}
實例:
/先要創(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;
語法:
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] ...
實例:/撤回了用戶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è)資訊欄目。
免責(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)容。