MySQL等主流數據庫的最高權限一般是root用戶. 有時我們需要提供數據庫的賬號和密碼以使用某些服務. 但實際上每個服務只會使用1個左右的數據庫. 直接將root賬號和密碼隨意分配是一件很危險的事情. 所以我們需要單獨的創建用戶, 並授權需要的數據庫給它.
用戶管理
創建用戶
創建用戶harrison, 並指定IP爲192.118.1.1; 設置密碼爲123
CREATE USER 'harrison' @'192.118.1.1' IDENTIFIED BY '123';
創建用戶harrison, 任意IP即可登錄; 設置密碼爲123
CREATE USER 'harrison' @'%' IDENTIFIED BY '123';
刪除用戶
刪除用戶名爲harrison, 且IP爲192.118.1.1的用戶
DROP USER 'harrison' @'192.118.1.1';
修改用戶名及IP
修改用戶名爲harrison, 不限制登錄IP的用戶 -> 用戶名harry, 限制登錄IP爲192.168.1.1
RENAME USER 'harrison' @'%' TO 'harry' @'192.168.1.1';
修改用戶密碼
修改用戶名爲harrison, 不限制登錄IP的用戶的密碼爲456
SET PASSWORD FOR 'harrison' @'%' = PASSWORD ( '456' );
用戶授權
查看用戶擁有權限
查看用戶harrison擁有的權限:
SHOW GRANTS FOR 'harrison' @'%';
賦予權限
爲harrison提供db1數據庫的table1表SELECT(查詢)、INSERT(新增)、UPDATE(修改)權限
GRANT
SELECT,
INSERT,
UPDATE ON db1.table1 TO "harrison" @'%';
爲harrison提供db1數據庫的全部增刪改查權限
GRANT ALL PRIVILEGES ON db1.* TO "harrison" @'%';
撤回權限
撤回harrison對db1數據庫的table1表的全部權限
REVOKE ALL ON db1.table1
FROM
'harrison' @"%";
撤回harrison對db1數據庫的全部權限
REVOKE ALL ON db1.*
FROM
'harrison' @"%";
感謝
結語
若你對本篇文章有任何問題, 歡迎在下方評論區討論, 或加入阿航的技術小站交流羣
歡迎訪問阿航的技術小站官網, 獲取更多技術乾貨!