時間:2022-12-06來源:www.djmaza-info.com作者:電腦系統城
一般在本機上我們的登錄命令:
mysql -u root -p+密碼
這里介紹命令的作用:
-u 指定用戶名
-h 指定主機地址(默認為localhost)
-p 指定用戶輸入的密碼
-P 指定服務器的端口(默認為3306)
什么是用戶管理呢?在創建了一個數據庫后,數據庫的管理員或者是創建者可以創建用戶并同時對該用戶做出限制(也就是用戶的權限),當其他人想要訪問該數據庫時,可以通過使用該用戶的信息登錄數據庫。
1:查詢用戶
use mysql;
select *from user;
//nysql數據庫的user表存放的是該數據庫中的用戶信息
2:創建用戶
create user '用戶名'@'主機名' identified by '密碼';
//如果想選擇任意主機地址
create user '用戶名'@'%' identified by '密碼';
3:修改用戶密碼
alter user '用戶名'@'主機名' identified with mysql_native_password by '新密碼';
4:刪除用戶
drop user '用戶名'@'主機名';
你即使創建了一個用戶但查詢數據庫會發現跟之前root用戶查詢數據庫時不一樣,這時候就是關于權限了。
1 2 |
create user 'peter' @ '%' identified by '989898' ; select * from user ; |
權限控制,概念就不多說了,MySQL中定義了許多權限,這里我們只說經常使用的。
all ,all privileges 所有權限
select 查詢數據
insert 插入數據
update 修改數據
delete 刪除數據
alter 修改表
drop 刪除數據表/庫/視圖
create 創建數據庫/表
1、查詢權限
show grants for '用戶名'@'主機名';
2、授予權限
grant + 權限列表(也就是權限) + on + 數據庫名或者表名+ to + '用戶名'@'主機名';
3、撤銷權限
revoke +權限列表 + on + 數據庫名/表名 + from + '用戶名'@'主機名';
注意多個權限之間用逗號隔開,*號通配符表示所有。
1 2 3 4 5 |
use mysql; select * from user ; create user '888' @ '%' identified by '1111' ; grant all on exercise.* to '888' @ '%' ; show grants for '888' @ '%' ; |
MySQL角色的引入有什么作用呢?與用戶的管理的語法相同,但它的作用卻不一樣。在MySQL中角色的引入是為了方便管理擁有相同權限的用戶,這樣子可以進行統一管理。
1、角色的創建
create role + 用戶名
2、 角色的授權
創建完角色后是空的,沒有任何內容這時候就需要授權了
grant + 權限 + on + 數據庫/表名 + to + 角色
3、角色權限的收回
revoke + 權限 + on + 數據庫/表名 + from + 角色
4、 講一個角色賦予其它角色或者是用戶
grant + 角色1 + to + 角色2 + with admin option
加了with admin option 表示獲得權限的角色還可以吧這個權限再賦予別人,沒有的話就不許了
這里舉個例子感受下,不過在舉例子前有個點要注意一下,創建了角色之后默認都是未被激活的,只有激活之后,被授予角色權限的用戶才可以得到相應的權限。
1 | select current_role(); |
顯示上面的圖片則顯示角色未被激活。
激活角色語句:
1 | set default all to + 用戶名 |
后面使用查看激活語句就會變成:
哦對,該激活角色的方法并不是永久激活。永久激活的方法我并不喜歡用,因為我怕以后會把這個知識給忘了(其實就是菜)
繼續說例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
create role r1; grant select , insert on exercise.* to r1; select * from user ; # 開始創建角色 create user 's1' @ '%' ; create user 's2' @ '%' ; # 查看創建角色的權限 show grants for 's1' @ '%' ; # 查看r1的權限 show grants for 'r1' ; # 開始將角色的權限復制給用戶 grant r1 to s1; # 查看賦予的用戶的權限 show grants for 's1' @ '%' ; |
使用s1用戶登錄數據庫
發現s1用戶并沒有update權限,至于其他的就不一一試驗了。
1 | revoke r1 from 's1' ; |
收回r1角色的權限后,連查看數據庫的權限都沒有了
對于角色的總結:角色總的來說就是權限的集合,它是為了防止出現多個用戶需要相同的權限二=而反復操作的情況,記住角色不是用戶,你用角色當做用戶登錄了數據庫這是不可能的,再一次強調角色只是一個或者是多個權限的集合。
2022-12-10
Mysql建庫字符集和排序規則及說明2022-12-06
Mysql多表操作方法講解教程2022-12-06
Mysql的DQL查詢操作全面分析講解1.索引的本質 2.索引的使用 2.1查看索引 2.2創建索引 2.3刪除索引 3.索引的數據結構 3.1B樹 3.2B+樹 4.事務 4.1事物的回滾(rollback) 4.2事務的四大特性(ACID) 4.2.1 原子性 4.2.2 一致性 4.2.3 持久性 4.2.4 隔離性...
2022-12-06
1. NULL約束 2. UNIQUE(唯一約束) 3. DEFAULT(默認值約束) 4. PRIMARY KEY(主鍵約束) 5. FOREIGN KEY(外鍵約束)...
2022-12-06