二十、MySQL之用户权限管理(用户管理、权限管理、忘记root密码的解决方案)
用戶權限管理:在不同的項目中給不同的角色(開發者)不同的操作權限,為了保證數據庫數據的安全。
通常,一個用戶的密碼不會長期不變,所以需要經常性的變更數據庫用戶密碼來確保用戶本身安全(mysql客戶端用戶)
一、用戶管理
Mysql需要客戶端進行連接認證才能進行服務器操作:需要用戶信息。Mysql中所有的用戶信息都是保存在mysql數據庫下的user表中。
默認的,在安裝Mysql的時候,如果不選擇創建匿名用戶,那么意味著所有的用戶只有一個:root超級用戶:
在mysql中,對用的用戶管理中,是由對應的Host和User共同組成主鍵來區分用戶。
User:代表用戶的用戶名
Host:代表本質是允許訪問的客戶端(IP或者主機地址)。
如果host使用%代表所有的用戶(客戶端)都可以訪問
1.1 創建用戶
理論上講可以采用兩種方式創建用戶:
基本語法:create user 用戶名 identified by ‘明文密碼’;
用戶:用戶名@主機地址
主機地址:’’ / ‘%’
查看mysql.user表中是否存在新增的用戶:
簡化版創建用戶(誰都可以訪問,不需要密碼):
當用戶創建完成之后,用戶是否可以使用?
1.2 刪除用戶
注意:mysql中user是帶著host本身的(具有唯一性)
基本語法:drop user 用戶名@host;
1.3 修改用戶密碼
Mysql中提供了多種修改的方式:基本上都必須使用對應提供的一個系統函數:password(),需要靠該函數對密碼進行加密處理。
基本語法:set password for 用戶 = password(‘新的明文密碼’);
修改后的數據測試:
基本語法:update mysql.user set password = password(‘新的明文密碼’) where user = ‘’ and host= ‘’;
二、權限管理
在mysql中將權限管理分為三類:
2.1 授予權限:grant
將權限分配給指定的用戶
基本語法:grant 權限列表 on 數據庫/.表名/ to 用戶;
權限列表:使用逗號分隔,但是可以使用all privileges代表全部權限
數據庫.表名:可以是單表(數據庫名字.表名),可以是具體某個數據庫(數據庫.),也可以整庫(.*)
用戶被分配權限以后不需要退出就可以看到效果:
具體權限查看:單表權限只能看到數據庫中的一張表:
2.2 取消權限:revoke
權限回收:將權限從用戶手中收回
基本語法:revoke 權限列表/all privileges on 數據庫/.表/ from 用戶;
權限回收,同樣不需要刷新,用戶馬上就會感受到:
2.3 刷新權限:flush
Flush:刷新,將當前對用戶的權限操作,進行一個刷新,將操作的具體內容同步到對應的表中。
基本語法:flush privileges;
三、密碼丟失的解決方案
如果忘記了root用戶密碼,就需要去找回或者重置root用戶密碼
總結
以上是生活随笔為你收集整理的二十、MySQL之用户权限管理(用户管理、权限管理、忘记root密码的解决方案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Promise学习——解决回调地狱问题
- 下一篇: 下载 嵌入式qt实战教程pdf_Qt之J