資料庫實驗五 資料庫的安全性

Happy_change發表於2020-12-16

實驗五 資料庫的安全性

一、實驗目的

掌握自主存取控制許可權的定義和維護方法。

二、實驗內容和要求

1.建立、刪除使用者
2.授予許可權
3.回收許可權
4.使用角色
要求:定義使用者、角色、分配許可權給使用者、角色,回收許可權,以相應的使用者名稱登入資料庫驗證許可權分配是否正確。

三、實驗過程

實驗過程中部分sql語句截圖

1.準備實驗資料
建立資料庫s_t,建立學生表student、課程表course、選修表sc,向表中新增適量資料。
2.在s_t資料庫中,完成以下操作
(1)建立使用者zhangsan和wangwu

create user zhangsan identified by123456;
CREATE USER wangwu IDENTIFIED BY '123456';

(2)授予使用者zhangsan擁有學生表的所有許可權,並可以給其他使用者授權。

grant all 
on s_t.student 
to zhangsan
with grant option;

(3)授予使用者zhangsan在s_t資料庫中建立檢視的許可權(create view)。

grant create view
on s_t.*
to zhangsan;

(4)授予使用者wangwu對學生表具有檢視許可權,對姓名具有更新許可權。

GRANT SELECT,UPDATE(Sname)
ON TABLE student
TO wangwu;

(5)使用使用者zhangsan登入資料庫,並將學生表的刪除許可權授予使用者wangwu。
grant delete on shujuku.student to wangwu;
在這裡插入圖片描述
(6)使用者zhangsan建立檢視student_info,檢視包含資訊系學生的學號、姓名和年齡。
在這裡插入圖片描述
(7)將檢視student_info的查詢許可權授予使用者wangwu。
在這裡插入圖片描述
網上查1142(42000)錯誤,發現是許可權不夠
(8)分別使用使用者zhangsan和wangwu登入資料庫,設計SQL語句驗證其是否具有相應許可權。
show grants for zhangsan;
在這裡插入圖片描述
show grants for wangwu;
在這裡插入圖片描述

(9)收回授予zhangsan和wangwu的所有許可權

REVOKE ALL
ON shujuku.*
FROM zhangsan;
REVOKE ALL
ON shujuku.student
FROM zhangsan;

REVOKE ALL
ON shujuku.student
FROM zhangsan;

(10)為教務管理建立管理人員角色manager和教師角色teacher,通過對角色授權,使得管理人員擁有學生表和課程表的所有許可權,對選課表可以進行查詢、刪除操作,並可以新增選課記錄(不含成績);使得教師能夠查詢所有表,並可以修改選課表中的成績。

CREATE role manager;
CREATE role teacher;

GRANT ALL
ON shujuku.student
TO manager;

GRANT ALL
ON shujuku.course
TO manager;

GRANT INSERT(Sno,Cno),SELECT,DELETE
ON shujuku.sc
to manager;

GRANT SELECT
ON shujuku.*
TO teacher;

GRANT ALL
ON shujuku.sc
TO teacher;

grant insert(sno,cno)
On sc
To manager;

(11)將角色manager授予管理員zhangsan,角色teacher授予教師wangwu。

GRANT manager
TO zhangsan;

GRANT teacher
TO wangwu;

(12)使用使用者zhangsan、wangwu分別登陸資料庫,設計SQL語句驗證其是否獲得相應許可權。

select current_role();
set role manager;

(13)刪除角色teacher和使用者wangwu。

DROP role teacher;
DROP role manager;

四、實驗總結(遇到的問題及解決方法)

使用grant和revoke語句向使用者授予或收回對資料的操作許可權。
Mysql建立使用者,例:create user zhangsan identified by ‘123456’;
在使用mysql視覺化工具Navicat for mysql,這些功能不好驗證,沒有找到使用使用者登入資料庫的方法,於是在建立好使用者對使用者功能進行驗證時大多使用的命令列,在命令列輸入相關語句。
檢視使用者許可權
在命令列使用語句show grants for zhangsan;可檢視使用者張三的許可權
也可在視覺化工具中檢視圖形化的使用者許可權介面。

相關文章