日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL笔记-mysql用户管理

發布時間:2023/12/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL笔记-mysql用户管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶創建(create user)、修改(alter user)、分配權限(grant)、刪除(drop user)都屬于數據庫管理語句中的用戶管理語句(Database Administration Statements——>Account Management Statements)。現記錄下簡單使用方法:

一、用戶創建


說明:

創建用戶時,mysql服務將自動分配一個認證插件(默認為mysql_native_password,可在mysql.user表中查看)。可使用IDENTIFIED WITH指定插件(后面可選的AS子句指定密碼)。也可用IDENTIFIED BY 指定密碼(此時插件即為默認的)。user格式為"userName"@"hostName",通配符'_'與'%'可用于hostName中,hostName的幾點說明:

1、localhost:表示本地主機;

2、127.0.0.1:IPv4的輪詢接口;

3、::1:IPv6的輪詢接口;

4、192.168.1.%:匹配一個子網的中所有主機。為保證訪問的安全性,所以mysql中此處%將不能匹配數字加點形式的主機名,如192.168.1.2.somewhere.com將不會被匹配。

5、對IPv4,可以使用子網掩碼,使該用于可通過子網中所有主機訪問。語法:host_ip/netmask,如:192.58.197.0/255.255.255.0。只有客戶端ip(client_ip)滿足client_ip&netmask=host_ip的客戶端主機可訪問。和第4條相似,但更加靈活,因為此處是三級網絡結構。

6、建議DNS服務器返回的主機名格式與account中設置的相同,以避免DNS返回格式導致的無法訪問錯誤。

CURRENT_USER或CURRENT_USER函數能快速返回當前的account。如:select CURRENT_USER;

簡單示例:


注:

1、創建用戶也可直接通過root根用戶操作mysql.user,添加用戶記錄,并分配權限。

2、新建用戶后必須重啟mysql服務,新用戶才能登陸,否則提示1045錯誤:Access denied for...導致該錯誤的另一原因也可能是用戶沒有訪問權限,即當前主機的hostName不在所訪問的數據庫服務器的用戶信息('userName'@'hostName')中的hostName中。



二、分配權限

以root用戶登錄mysql,查詢mysql數據庫中的user表,會發現,剛創建的用戶所有權限的值都是默認的"N",所以需要分配權限,才能執行SELECT等操作。語法:


簡單實踐:為新建的user_test用戶分配一個查詢與插入test.test_procedure表的權限。


之后一定要重啟mysql服務,否則以新建用戶登錄時會提示1045:Access denied...訪問取消錯誤。

以user_test登錄并查詢具有權限的表:


說明:

1、當試圖查詢mysql.user表時提示1142:查詢命令取消錯誤,因為沒權限。

2、再次以root登錄mysql,在mysql數據庫的user表中查看為test_user分配的權限,發現select與insert權限值還是為N,也許是因為只是在某個表上分配了權限的原因。

3、未演示對分配userA對某些user(如:userB、userC...)的管理權限。分配后應該可以實現分層管理。

問題:

對只分配了某個表的select與insert權限的用戶,也能對該表進行增刪改查等操作,且也能建新表,難道這些權限是默認的?那為什么mysql.user表中顯示的全是N?個人的理解是,其實創建的user也是數據庫管理員,只是級別比root低,只有將所有數據庫所有表的所有權限配給user時,在mysql.user中該user的權限才顯示為Y,進行了簡單實踐也卻是如此。



三、修改用戶

5.6.7版本只有一條(ALTER USER),且前面的版本沒有此項。必須要求有創建用戶權限方可操作,換句話說,執行此命令的用戶要能管理其他用戶。

5.6.24文檔說明:


翻譯:

該條語句表現為在mysql.user表中的password_expired列值被設為Y。在嚴格模型中,如果一個用戶的密碼expire(失效,期滿),則在會話期間的操作將導致錯誤(1820),直到該用戶重設密碼。

疑問:

管理員應該什么時候用該語句,告訴用戶該改密碼呢?



四、刪除用戶

語法:

DROP user 'userName'@'hostName';


五、用戶代理

具有用戶代理權限的用戶,可在被代理用戶允許登錄的主機上登錄被代理用戶可訪問的數據庫。分配用戶代理權限,見上面分配權限圖。

未實踐


注:MySQL中schema與database幾乎相同,但shemale是默認對所有用戶都有權限的,無需分配權限。如任意用戶A新建一個schema,則只能訪問數據庫databaseB的用戶B執行show databases也能看見A建的schema!

總結

以上是生活随笔為你收集整理的MySQL笔记-mysql用户管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。