您好,登錄后才能下訂單哦!
下面跟著筆者一起來了解下MySQL之數據控制語言DCL,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL之數據控制語言DCL這篇短內容是你想要的。
我們使用DDL的"CREATE USER"語句創建用戶,新的SQL用戶不允許訪問屬于其他SQL用戶的表,也不能立即創建自己的表,它必須被授權。可以授予的權限包括以下幾組:
1.列權限:和表中的一個具體列相關
2.表權限:和一個具體數據表中所有數據相關
3.數據庫權限:和一個具體數據庫中所有數據表相關
4.用戶權限:和MySQL所有的數據庫相關
可以使用SHOW GRANTS命令查看當前用戶的權限。
SHOW GRANTS;/顯示當前用戶權限 SHOW GRANTS FOR 'pinnsvin'@'localhost';/顯示指定用戶權限 SHOW GRANTS FOR CURRENT_USER();/顯示當前用戶權限
語法:
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]/聯級授權,選了此項,該用戶有權將自己的權限授予自己創建的子用戶/授權目標對象類型 object_type: { TABLE | FUNCTION | PROCEDURE} /授權目標 priv_level: { * | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.routine_name } /授權用戶 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設置 ssl_option: { SSL | X509 | CIPHER 'cipher' | ISSUER 'issuer' | SUBJECT 'subject'} resource_option: { | MAX_QUERIES_PER_HOUR count /允許用戶每小時執行的查詢語句數量 | MAX_UPDATES_PER_HOUR count /允許用戶每小時執行更新語句數量 | MAX_CONNECTIONS_PER_HOUR count /允許用戶每小時連接的次數 | MAX_USER_CONNECTIONS count /允許用戶同時連接云服務器的數量}
實例:
/先要創建一個用戶,創建了一個名為jeffrey,登錄主機為localhost,密碼為mypass的用戶CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';/授予了用戶jeffrey@localhost對數據庫db1下所有數據表所有操作權限GRANT ALL ON db1.* TO 'jeffrey'@'localhost';/授予了用戶'jeffrey'@'localhost'對數據庫db2下invoice數據表的查詢權限GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';/USAGE意指無權限,用戶jeffrey@localhost 在一個小時內只有90次查詢權限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] ... /授權代理REVOKE PROXY ON user FROM user [, user] ...
實例:/撤回了用戶jeffrey@localhost對數據庫db1下所有數據表所有操作權限REVOKE ALL ON db1.* FROM 'jeffrey'@'localhost';/撤回了用戶'jeffrey'@'localhost'對數據庫db2下invoice數據表的查詢權限REVOKE SELECT ON db2.invoice FROM 'jeffrey'@'localhost';
看完MySQL之數據控制語言DCL這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。