1. 程式人生 > >mysql之用戶管理

mysql之用戶管理

class 後綴 可選 blog 地址 top 使用 9.png 遠程


本文內容:

  • 用戶的介紹
  • 查看用戶
  • 創建用戶帳戶
  • 修改賬戶
  • 刪除帳戶
  • 關於匿名用戶

首發日期:2018-04-19


用戶的介紹:

  • mysql的客戶端連接是以用戶名來登錄服務端。
  • 服務端可以對用戶的權限來進行更改,所以每個用戶對數據庫或對數據表的權限都是不一樣的。
  • 一般來說不應該使用root用戶登錄,因為root用戶擁有最高的權限,可以進行刪除數據庫等“危險”操作。為了安全,應該使用其他用戶登錄,並且給他分配合適的權限。
  • 並且用戶應該是有密碼的,使用匿名用戶(沒有密碼)是非常危險的,如果這個匿名用戶又是開放遠程登錄的話那別人只要檢測到你的端口是開放的就可以登錄你的mysql了。


查看用戶:

  • MySQL用戶賬號和信息存儲在名為 mysql 的MySQL數據庫中。
  • mysql 數據庫有一個名為 user 的表,它包含所有用戶賬號。 user表有一個名為 user 的列,它存儲用戶登錄名。
    • 技術分享圖片
  • 使用select * from user\G來獲取完整的表數據時
    • 其中後綴是priv是權限的意思,N代表沒有。技術分享圖片
    • host是代表允許登錄的主機,%為允許本地和非本地主機登錄技術分享圖片
    • user是用戶名技術分享圖片
    • authentication string是密碼的散列值。技術分享圖片


創建用戶帳戶:

  • 方式1:create user 用戶名@可登錄地址 identified by ‘密碼‘;
    • 沒有可登錄地址代表所有地址都能登錄技術分享圖片
    • 如果只允許本地登錄,應該設置成localhost技術分享圖片
  • 方式2:grant 權限 on 數據庫.數據表 to 用戶名@可登錄地址 identified by ‘密碼‘;
    • 技術分享圖片
  • 方式3:可以使用Insert直接往user表中插入數據,但不建議使用。


修改賬戶:

  • 重命名用戶:rename user 原用戶名@可登錄地址 to 新用戶名@可登錄地址; 【原用戶名的可登錄地址是必須的,而新用戶名的可登錄地址是可選的,但不填的話就會默認成%即允許遠程登錄】
  • 更改密碼:set password for ‘用戶名‘@可登錄地址 = password(‘密碼‘);【在不指定用戶名的情況下,為修改當前用戶的密碼】【可登錄地址是可選的,必須是原來的可登錄地址】
    • 技術分享圖片技術分享圖片
  • 修改賬戶權限將在另外一篇博文中講述。超鏈接:mysql之用戶權限管理

刪除帳戶:

  • drop user 用戶名;

補充:

  • 在mysql5.0之前drop user命令只會刪除用戶,而不刪除權限,在5.0之前需要先用revoke刪除權限。


關於匿名用戶:

  • 在舊版本默認情況都會有一個匿名用戶,這使得你不需要使用用戶及密碼就能登錄mysql
  • 如何創建匿名用戶技術分享圖片
  • 一般情況下不應該創建匿名用戶,即使是因為學習方便而創建也應該設置成本地的。


mysql之用戶管理