MySQL數(shù)據(jù)庫權(quán)限分配

一、基本內(nèi)容

1. 掌握用戶管理的基本使用方法

(1)創(chuàng)建用戶(帶密碼)。
(2)創(chuàng)建超級用戶。
(3)刪除用戶。

2. 掌握用戶授權(quán)和回收權(quán)限的基本使用方法

(1)給用戶授權(quán)。
(2)轉(zhuǎn)授權(quán)。
(3)回收用戶權(quán)限。
(4)級聯(lián)回收權(quán)限。

3. 掌握角色的使用方法

(1)創(chuàng)建角色。
(2)刪除角色。
(3)給角色授權(quán)。
(4)撤銷角色權(quán)限。
(5)利用角色授權(quán)。
(6)收回利用角色授予的權(quán)限。

4.掌握系統(tǒng)級權(quán)限和對象級權(quán)限的使用方法

(1)系統(tǒng)級權(quán)限。
(2)對象級權(quán)限。
(3)表級權(quán)限。
(4)列級權(quán)限。

二、問題描述

1.掌握用戶管理的基本使用方法

(1)創(chuàng)建用戶(帶密碼)。

創(chuàng)建用戶:
<1> 用戶1
Username:DBA
Password:111111

<2> 用戶2
Username:u1
Password:111111

<3> 用戶3
Username:u2
Password:111111

<4> 用戶4
Username:u3
Password:111111

<5> 用戶5
Username:new
Password:111111

(2)創(chuàng)建超級用戶。

Username:root
Password:root
超級管理員在安裝mysql時(shí),已經(jīng)創(chuàng)建,如下可顯示登錄過程,以及超級管理員的用戶權(quán)限。

2.掌握用戶授權(quán)和回收權(quán)限的基本使用方法

(1)給用戶授權(quán)。

給root授予超級權(quán)限的權(quán)限
數(shù)據(jù)庫創(chuàng)建的時(shí)候,已經(jīng)創(chuàng)建。

(2)轉(zhuǎn)授權(quán)。
GRANT ALL PRIVILEGES ON edutest.* TO u3 WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON edutest.* TO u2 with grant option;

GRANT ALL PRIVILEGES ON day15.* TO 'u1' with grant option;

GRANT ALL PRIVILEGES ON day1.* TO new@localhost IDENTIFIED BY 'new';

GRANT ALL PRIVILEGES ON edutest.* TO DBA WITH GRANT OPTION;

(3)回收用戶權(quán)限。

 revoke SELECT on edutest.* from u1
revoke SELECT,update on edutest.* from u2
revoke delete,insert on edutest.student from u3

3.掌握角色的使用方法

(1)創(chuàng)建角色
創(chuàng)建角色ROLE1

CREATE ROLE ROLE1

(2)給角色授權(quán)
給ROLE1更新SUPPLIER表的權(quán)限

GRANT SELECT,UPDATE ON SUPPLIER TO ROLE1

(3)撤銷角色權(quán)限
收回ROLE1查詢SUPPLIER表的權(quán)限

REVOKE SELECT ON SUPPLIER FROM ROLE1 

(4)利用角色授權(quán)
給DBA授予ROLE1的權(quán)限

exec sp_addrolemember 'ROLE1','DBA'  

(5)收回利用角色授予的權(quán)限

REVOKE INSERT ON SUPPLIER FROM ROLE1  

三、SQL語句

1創(chuàng)建用戶(帶密碼)。

<1> 用戶1
Username:DBA
Password:111111
代碼:

INSERT INTO USER(HOST,USER,PASSWORD) VALUE('localhost','DBA',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON day1.* TO DBA WITH GRANT OPTION;

FLUSH PRIVILEGES;

結(jié)果:


image.png

image.png

image.png

<2> 用戶2
Username:u1
Password:111111

代碼:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','DBA',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO DBA with grant option;

結(jié)果:


image.png

image.png

<3> 用戶3
Username:u2
Password:111111

代碼:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','u2',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO u2 with grant option;

結(jié)果:


image.png

image.png

<4> 用戶4

Username:u3
Password:111111

代碼:

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','u3',PASSWORD('111111'));

GRANT ALL PRIVILEGES ON edutest.* TO u3 WITH GRANT OPTION;

結(jié)果:


image.png

image.png

<5> 用戶5
Username:new
Password:111111
代碼:

INSER TINTO USER(HOST,USER,PASSWORD) VALUE('localhost','new',PASSWORD('new'));

GRANT ALL PRIVILEGES ON day15.* TO NEW@localhost IDENTIFIED BY 'new';

FLUSH PRIVILEGES;

結(jié)果:

SELECT * FROM USER;
image.png
SELECT * FROM USER;
image.png

image.png

image.png

2 創(chuàng)建超級用戶。

Username:root
Password:root
超級管理員在安裝mysql時(shí),已經(jīng)創(chuàng)建,如下可顯示登錄過程,以及超級管理員的用戶權(quán)限。還用戶可以對mysql數(shù)據(jù)庫中所有數(shù)據(jù)庫有操作的權(quán)利,可以享有一切超級權(quán)限。


image.png

3 回收權(quán)限

(1)為spring用戶分配spring數(shù)據(jù)庫的所有權(quán)限

Insert,select, update,delete, alter 等

<1> 在user 表中創(chuàng)建用戶

insert into user(host,user,password)value('localhost','spring',password('spring'));

結(jié)果:
查看mysql 數(shù)據(jù)庫user表中進(jìn)行查詢:

Select * from user;
image.png

< 2> 將數(shù)據(jù)庫spring 的所有權(quán)限交給用戶spring

Grant all privileges on spring.* to spring@localhost identified by 'spring';

flush privileges;

執(zhí)行完上述的語句之后,必須查看mysql 數(shù)據(jù)庫的db表,是否將spring數(shù)據(jù)庫的所有權(quán)限分配給了用戶spring

Db表的結(jié)果:


image.png

執(zhí)行完上述的語句之后,必須查看mysql 數(shù)據(jù)庫的table_pri表,是否將spring數(shù)據(jù)庫表的所有權(quán)限分配給了用戶spring


image.png

對用戶spring的權(quán)限進(jìn)行收回
用戶權(quán)限收回前:

Create權(quán)限:

CREATE TABLE userStu(
    id INT PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(20) NOT NULL,
    snum INT NOT NULL,
    sdept VARCHAR(10)
);
image.png

Insert,select權(quán)限:

insert into userStu(sname,snum,sdept) value ('黎濤','1001','IT');

select * from userStu;
image.png

Update 權(quán)限:

UPDATE userStu SET sdept='SA' WHERE sname='黎濤';

SELECT * FROM userStu;
image.png

image.png

Delete權(quán)限:

delete from userStu where sname='黎濤';

SELECT * FROM userStu;
image.png

回收權(quán)限后:

該用戶無法使用
Create


image.png

將spring用戶的create 權(quán)限收回后,已經(jīng)無法正常進(jìn)行數(shù)據(jù)庫表的創(chuàng)建:


image.png

Insert
image.png

image.png

Update


image.png

在執(zhí)行修改語句時(shí)已經(jīng)出現(xiàn)了錯(cuò)誤,已經(jīng)不能進(jìn)行修改操作了:

image.png

Delete
image.png

在執(zhí)行刪除語句時(shí)已經(jīng)出現(xiàn)了錯(cuò)誤,已經(jīng)不能進(jìn)行刪除操作了:
image.png

/將收回的權(quán)限重新進(jìn)行授予/

GRANT CREATE,INSERT,UPDATE,DELETE ON spring.* TO spring@'localhost' IDENTIFIED BY 'spring';
image.png

4 轉(zhuǎn)授權(quán)限:

創(chuàng)建兩個(gè)用戶:

/創(chuàng)建springmvc用戶 ,為該用戶分配springmvc 數(shù)據(jù)庫的所有權(quán)限/
/創(chuàng)建springmvc用戶/

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','springmvc',PASSWORD('springmvc'));

/為該用戶分配springmvc 數(shù)據(jù)庫的所有權(quán)限/

GRANT ALL PRIVILEGES ON springmvc.* TO springmvc@'localhost' IDENTIFIED BY 'springmvc' WITH GRANT OPTION; 

FLUSH PRIVILEGES;

/創(chuàng)建springmvc1用戶 ,為該用戶分配springmvc 數(shù)據(jù)庫的所有權(quán)限/
/創(chuàng)建springmvc1用戶/

INSERT INTO USER(HOST,USER,PASSWORD)VALUE('localhost','springmvc1',PASSWORD('springmvc1'));

FLUSH PRIVILEGES;

Mysql數(shù)據(jù)庫的User表


image.png

數(shù)據(jù)庫權(quán)限db表:


image.png

Springmvc 用戶一切正常:
image.png

注意:在此之前用戶springmvc1是對數(shù)據(jù)庫springmvc沒有任何的操作權(quán)限

在springMVC用戶中進(jìn)行分配:
/為該用戶分配springmvc 數(shù)據(jù)庫的所有權(quán)限/

GRANT ALL PRIVILEGES ON springmvc.* TO springmvc1@'localhost' IDENTIFIED BY 'springmvc1' WITH GRANT OPTION; 

FLUSH PRIVILEGES;
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容