數據庫的安全性,即保護數據庫,防止未經受權或不合法的使用而形成的數據泄漏和更改破壞。所以,保護數據庫的安全性的通常方法是設置用戶標識和權限控制。javascript
原文地址:服務端指南 數據存儲篇 | MySQL(06) 數據庫安全性
博客地址:blog.720ui.com/java
MySQL 權限控制,分爲兩個步驟。第一步驟,服務器會檢查是否容許鏈接。由於建立用戶的時候會加上主機限制,能夠限制成本地、某個 IP、某個 IP 段等,只容許從配置的指定地方登陸。第二步驟,若是容許鏈接,那麼 MySQL 會檢查發出的每一個請求是否有足夠的權限執行。舉個例子,假設須要刪除某個表,MySQL 會檢查是否對這個表有刪除操做權限。mysql
MySQL 爲了數據庫的安全性,設置了對數據的存取進行控制的語句,對用戶受權使用 GRANT 語句,收回所授的權限使用 REVOKE 語句。sql
授予用戶權限,簡單格式可歸納以下。數據庫
GRANT <權限>
ON <數據庫對象>
TO <用戶>複製代碼
假設,須要讓普通 DBA 管理某個數據庫的權限,能夠授予這個數據庫的全部權限。安全
grant select, insert, update, delete on db_name.* to 'dba'@'localhost'複製代碼
假設,須要讓高級 DBA 管理某個數據庫的權限,能夠授予這個數據庫的全部權限。服務器
grant all on db_name.* to 'dba'@'localhost';複製代碼
假設,須要讓超級管理員管理全部數據庫的權限。微信
grant all on *.* to 'dba'@'localhost';複製代碼
假設,須要讓超級管理員管理全部數據庫的權限,賦予遠程權限。ide
grant all on *.* to 'dba'@'192.168.244.142' identified by 'mypassword' with grant option;複製代碼
回收用戶權限,和授予用戶權限相似,只須要把關鍵字 to 改爲 from 便可。ui
REVOKE <權限>
ON <數據庫對象>
FROM <用戶>複製代碼
假設,須要收回普通 DBA 某個數據庫的刪除權限。
revoke delete on db_name.* from 'dba'@'localhost';複製代碼
對於數據庫安全問題,須要遵照幾個原則:
(完)
更多精彩文章,盡在「服務端思惟」微信公衆號!