MySQL許可權管理

來源:互聯網
上載者:User

查看使用者權限
show grants for 你的使用者
比如:
show grants for root@'localhost';

mysql 5種權限等級:global level,database level,table level,column level,routine level。進階別會覆蓋低層級的許可權。
給使用者賦權,與撤消許可權
GRANT SELECT,UPDATE,DELETE,INSERT ON *.* TO 'def'@'localhost';
REVOKE SELECT,UPDATE,DELETE,INSERT ON *.* FROM 'def'@'localhost';
許可權相關表格儲存體在資料庫mysql中,有user, db, host, tables_priv, columns_priv, procs_priv, proxies_priv。

--查看目前使用者
select user();
--查看所有使用者
SELECT host,user,password FROM mysql.user ORDER BY user;

我們先瞭解何時 MySQL 存放於記憶體結構中的許可權資訊被更新: FLUSH PRIVILEGES 會強行讓 MySQL 更新 Load 到記憶體中的許可權資訊; GRANT 、 REVOKE 或者 CREATE USER 和 DROP USER 操作會直接更新記憶體中的許可權資訊;重啟 MySQL 會讓 MySQL 完全從 grant tables 中讀取許可權資訊。

那記憶體結構中的許可權資訊更新之後對已經串連上的使用者何時生效呢?對於 Global Level 的許可權資訊的修改,僅僅只有更改之後建立串連才會用到,對於已經串連上的 session 並不會受到影響。而對於 Database Level 的許可權資訊的修改,只有當用戶端請求執行了 “ USE database_name ” 命令之後,才會在重新校正中使用到新的許可權資訊。所以有些時候如果在做了比較緊急的 Global 和 Database 這兩個 Level 的許可權變更之 後 ,可能需要通過 “ KILL ” 命令將已經串連在 MySQL 中的 session 殺掉強迫他們重新串連以使用更新後的許可權。對於 Table Level 和 Column Level 的許可權,則會在下一次需要使用到該許可權的 Query 被請求的時候生效,也就是說,對於應用來講,這兩個Level 的許可權,更新之後立刻就生效了,而不會需要執行 “ KILL ” 命令。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.