MySQL的資料控制語言DCL

來源:互聯網
上載者:User

標籤:

我們使用DDL的"CREATE USER"語句建立使用者,新的SQL使用者不允許訪問屬於其他SQL使用者的表,也不能立即建立自己的表,它必須被授權。可以授與權限包括以下幾組:

1.列許可權:和表中的一個具體列相關

2.表許可權:和一個具體資料表中所有資料相關

3.資料庫許可權:和一個具體資料庫中所有資料表相關

4.使用者權限:和MySQL所有的資料庫相關

可以使用SHOW GRANTS命令查看目前使用者的許可權。

SHOW GRANTS;/顯示目前使用者許可權SHOW GRANTS FOR ‘pinnsvin‘@‘localhost‘;/顯示指定使用者權限SHOW GRANTS FOR CURRENT_USER();/顯示目前使用者許可權
1.GRANT授權語句

文法:

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意指無許可權,使用者[email protected] 在一個小時內只有90次查詢許可權GRANT USAGE ON *.* TO ‘jeffrey‘@‘localhost‘ WITH MAX_QUERIES_PER_HOUR 90;
2.REVOKE撤銷授權語句

文法:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.