MySQL權(quán)限控制和用戶與角色管理實例分析講解
一、MySQL用戶登錄
一般在本機上我們的登錄命令:
mysql -u root -p+密碼
這里介紹命令的作用:
-u 指定用戶名
-h 指定主機地址(默認(rèn)為localhost)
-p 指定用戶輸入的密碼
-P 指定服務(wù)器的端口(默認(rèn)為3306)
二、用戶管理
什么是用戶管理呢?在創(chuàng)建了一個數(shù)據(jù)庫后,數(shù)據(jù)庫的管理員或者是創(chuàng)建者可以創(chuàng)建用戶并同時對該用戶做出限制(也就是用戶的權(quán)限),當(dāng)其他人想要訪問該數(shù)據(jù)庫時,可以通過使用該用戶的信息登錄數(shù)據(jù)庫。
1:查詢用戶
use mysql;
select *from user;
//nysql數(shù)據(jù)庫的user表存放的是該數(shù)據(jù)庫中的用戶信息
2:創(chuàng)建用戶
create user '用戶名'@'主機名' identified by '密碼';
//如果想選擇任意主機地址
create user '用戶名'@'%' identified by '密碼';
3:修改用戶密碼
alter user '用戶名'@'主機名' identified with mysql_native_password by '新密碼';
4:刪除用戶
drop user '用戶名'@'主機名';
你即使創(chuàng)建了一個用戶但查詢數(shù)據(jù)庫會發(fā)現(xiàn)跟之前root用戶查詢數(shù)據(jù)庫時不一樣,這時候就是關(guān)于權(quán)限了。
create user 'peter'@'%' identified by '989898'; select *from user;
三、權(quán)限控制
權(quán)限控制,概念就不多說了,MySQL中定義了許多權(quán)限,這里我們只說經(jīng)常使用的。
all ,all privileges 所有權(quán)限
select 查詢數(shù)據(jù)
insert 插入數(shù)據(jù)
update 修改數(shù)據(jù)
delete 刪除數(shù)據(jù)
alter 修改表
drop 刪除數(shù)據(jù)表/庫/視圖
create 創(chuàng)建數(shù)據(jù)庫/表
1、查詢權(quán)限
show grants for '用戶名'@'主機名';
2、授予權(quán)限
grant + 權(quán)限列表(也就是權(quán)限) + on + 數(shù)據(jù)庫名或者表名+ to + '用戶名'@'主機名';
3、撤銷權(quán)限
revoke +權(quán)限列表 + on + 數(shù)據(jù)庫名/表名 + from + '用戶名'@'主機名';
注意多個權(quán)限之間用逗號隔開,*號通配符表示所有。
use mysql; select *from user; create user '888'@'%' identified by '1111'; grant all on exercise.* to '888'@'%'; show grants for '888'@'%';
四、角色管理
MySQL角色的引入有什么作用呢?與用戶的管理的語法相同,但它的作用卻不一樣。在MySQL中角色的引入是為了方便管理擁有相同權(quán)限的用戶,這樣子可以進行統(tǒng)一管理。
1、角色的創(chuàng)建
create role + 用戶名
2、 角色的授權(quán)
創(chuàng)建完角色后是空的,沒有任何內(nèi)容這時候就需要授權(quán)了
grant + 權(quán)限 + on + 數(shù)據(jù)庫/表名 + to + 角色
3、角色權(quán)限的收回
revoke + 權(quán)限 + on + 數(shù)據(jù)庫/表名 + from + 角色
4、 講一個角色賦予其它角色或者是用戶
grant + 角色1 + to + 角色2 + with admin option
加了with admin option 表示獲得權(quán)限的角色還可以吧這個權(quán)限再賦予別人,沒有的話就不許了
這里舉個例子感受下,不過在舉例子前有個點要注意一下,創(chuàng)建了角色之后默認(rèn)都是未被激活的,只有激活之后,被授予角色權(quán)限的用戶才可以得到相應(yīng)的權(quán)限。
select current_role();
顯示上面的圖片則顯示角色未被激活。
激活角色語句:
set default all to + 用戶名
后面使用查看激活語句就會變成:
哦對,該激活角色的方法并不是永久激活。永久激活的方法我并不喜歡用,因為我怕以后會把這個知識給忘了(其實就是菜)
繼續(xù)說例子:
create role r1; grant select,insert on exercise.* to r1; select *from user; # 開始創(chuàng)建角色 create user 's1'@'%'; create user 's2'@'%'; # 查看創(chuàng)建角色的權(quán)限 show grants for 's1'@'%'; # 查看r1的權(quán)限 show grants for 'r1'; # 開始將角色的權(quán)限復(fù)制給用戶 grant r1 to s1; # 查看賦予的用戶的權(quán)限 show grants for 's1'@'%';
使用s1用戶登錄數(shù)據(jù)庫
發(fā)現(xiàn)s1用戶并沒有update權(quán)限,至于其他的就不一一試驗了。
revoke r1 from 's1';
收回r1角色的權(quán)限后,連查看數(shù)據(jù)庫的權(quán)限都沒有了
對于角色的總結(jié):角色總的來說就是權(quán)限的集合,它是為了防止出現(xiàn)多個用戶需要相同的權(quán)限二=而反復(fù)操作的情況,記住角色不是用戶,你用角色當(dāng)做用戶登錄了數(shù)據(jù)庫這是不可能的,再一次強調(diào)角色只是一個或者是多個權(quán)限的集合。
到此這篇關(guān)于MySQL權(quán)限控制和用戶與角色管理實例分析講解的文章就介紹到這了,更多相關(guān)MySQL權(quán)限控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VMWare linux mysql 5.7.13安裝配置教程
這篇文章主要為大家詳細(xì)介紹了VMWare linux mysql 5.7.13安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05Mysql中json類型數(shù)據(jù)查詢的實現(xiàn)
MySQL5.7開始支持JSON格式的數(shù)據(jù)類型,可以存儲和處理JSON類型的數(shù)據(jù),本文主要介紹一些關(guān)于json數(shù)據(jù)類型的查詢操作,具有一定的參考價值,感興趣的可以了解一下2023-10-10mysql啟用skip-name-resolve模式時出現(xiàn)Warning的處理辦法
在優(yōu)化MYSQL配置時,加入 skip-name-resolve ,在重新啟動MYSQL時檢查啟動日志,發(fā)現(xiàn)有警告信息2012-07-07