MySQL数据库8(十八)用户权限管理
用戶權(quán)限管理
用戶權(quán)限管理:在不同的項目中給不同的角色(開發(fā)者)不同的操作權(quán)限,為了保證數(shù)據(jù)庫數(shù)據(jù)的安全
?
用戶管理
Mysql需要客戶端進行連接認證才能進行服務器操作,需要用戶信息。Mysql中所有用戶的信息都保存在mysql數(shù)據(jù)庫下的user表中。
?
默認的,在安裝mysql的時候,如果沒有創(chuàng)建匿名用戶,那么意味著所有的用戶只有一個;root超級用戶
?
PS:修改root用戶密碼:?alter user'root'@'localhost' identified by '新密碼';?
?
?
在mysql中,對用戶的用戶管理中,是由對應的host和user共同組成主鍵來區(qū)分用戶;
User:代表用戶的用戶名
Host:代表本機是允許訪問的客戶端(ip或者主機地址)。如果host使用*,代表所有的用戶(客戶端)都可以進行訪問
創(chuàng)建用戶
理論上講,可采用兩種方案創(chuàng)建用戶:
1、直接使用root用戶在mysql.user表中插入記錄(不推薦)
2、專門用于創(chuàng)建用戶的SQL指令
基本語法:create user 'username'@'host' identified by ‘password’;
?
username:你將創(chuàng)建的用戶名
host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%。通配符%可以用作整個主機名,或者用作主機名的一部分。如果主機名為空,表示是一個通配符,但比%通配符通配范圍低。
password:該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器
?
查看mysql.user是否存在新增的用戶
??
簡化創(chuàng)建用戶
?
?
刪除用戶
注意:mysql中user是帶著host本身的(具有唯一性)
基本語法:drop user 'username'@'host';
?
修改用戶密碼
Mysql中提供了多種修改的方式,基本上都必須使用對應提供的一個系統(tǒng)函數(shù):password(),需要靠該函數(shù)對密碼進行加密處理。
?
使用專門的修改密碼的指令
基本語法: set password for 'username'@'host' = ‘newpassword’;
如果是當前用戶:set password = ‘newpassword’;
?
?
權(quán)限管理
在mysql中將權(quán)限管理分為三類:
1、數(shù)據(jù)權(quán)限:增刪改查(select、update、delete、insert)
2、結(jié)構(gòu)權(quán)限:結(jié)構(gòu)操作(create、drop)
3、管理權(quán)限:權(quán)限管理(create user、grant、revoke):通常只給管理員如此權(quán)限
授予權(quán)限:grant
將權(quán)限分配給指定的用戶:
基本語法:grant 權(quán)限列表 on 數(shù)據(jù)庫/*.表名/* to 用戶 [with grant option];
權(quán)限列表:使用逗號分隔,但是可以使用all privileges 代表全部權(quán)限
數(shù)據(jù)庫.表名:可以是單表(數(shù)據(jù)庫名字.表名),可以是具體某個數(shù)據(jù)庫(數(shù)據(jù)庫.*),也可以是整庫(*.*)
mysql中只有with grant option,對A用戶進行的授權(quán),A可以授予給其他用戶,當收回對A的授權(quán)時,A授予給其他用戶的權(quán)限不會被級聯(lián)收回。注意with grant option也可以被授予給其他用戶。
?
?
具體權(quán)限查看:單表權(quán)限只能看到數(shù)據(jù)庫中的一張表
Show語句的一個變體用來查看用戶被授予的權(quán)限:
show grants for user;
?
?
取消權(quán)限:revoke
權(quán)限回收:將權(quán)限從用戶手中收回。
?
基本語法:revoke 權(quán)限列表/all privileges on 數(shù)據(jù)庫/*.表名/* from 用戶;
授予權(quán)限時如果有with grant option必須再執(zhí)行
revoke grant option from 'test1'@'localhost';
完整才能回收其權(quán)限。
?
權(quán)限回收,同樣不需要刷新,用戶馬上就會感受到
?
?
刷新權(quán)限:flush
(1)Flush;刷新,將當前對用戶的權(quán)限操作,進行一個刷新,將操作的具體內(nèi)容同步到對應的表中。此操作需要在mysql命令提示符下執(zhí)行(需要以管理員身份登錄)。
基本語法:flush privileges;
(2)mysqladmin flush-privileges
(3)mysqladmin reload
(2)和(3)需要在操作系統(tǒng)環(huán)境下運行。
最后,mysql服務器將在重新啟動時重新載入授權(quán)表。
當用戶下次再連接時,全局級別權(quán)限將再次被檢查。當下一個use語句觸發(fā)時,數(shù)據(jù)庫權(quán)限將被檢查,而表級別和列級別權(quán)限將在用戶下次請求時檢查。
密碼丟失找回
如果忘記了root用戶密碼,就需要去找回或者重置root用戶密碼
?
https://blog.csdn.net/gupao123456/article/details/80766154
轉(zhuǎn)載于:https://www.cnblogs.com/sun-yanglu/p/9612806.html
總結(jié)
以上是生活随笔為你收集整理的MySQL数据库8(十八)用户权限管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python处理pdf实例_Python
- 下一篇: linux cmake编译源码,linu