天天看點

【資料庫系統概論】實驗五 SQL資料庫安全控制

一、實驗目的

1.掌握SQL Server資料庫使用者基本操作

2.掌握SQL Server資料庫授權及回收權限的方法

二、實驗内容

  1. 建立登入使用者st1,st2
  2. 使st1,st2成為stu_db的合法使用者

    EXEC sp_grantdbaccess N’st1’ /sp_grantdbaccess為存儲過程

  3. 以st1登入,是否能對student表進行查詢、修改、删除?
  4. 以管理者登入,授予st1查詢、修改student,sc表的權限,并允許st1将權限轉授。将student表中學生年齡增加1歲。
  5. 以st1登入,将對student,sc表的查詢、修改權限授予st2。
  6. 以st2登入,查詢student,将sc表中學生成績增加10%。
  7. 收回st1對表student,sc的查詢、修改權限。
  8. 删除使用者st1,st2。删除登入名st1,st2。

三、問題和要求

1. 建立登入使用者st1,st2

create login st1

with

password=‘123’

-- 建立登入使用者st1,st2
CREATE LOGIN st1 WITH PASSWORD='A123456a';
CREATE LOGIN st2 WITH PASSWORD='A123456a';      

賬号建立成功:

【資料庫系統概論】實驗五 SQL資料庫安全控制

使用st1賬戶進行登入:

【資料庫系統概論】實驗五 SQL資料庫安全控制

通路stu_db資料庫:

【資料庫系統概論】實驗五 SQL資料庫安全控制

2. 使st1,st2成為stu_db的合法使用者

EXEC sp_grantdbaccess N’st1’ /sp_grantdbaccess為存儲過程

使用管理者賬戶登入。使用【USE stu_db;】指令進入到stu_db資料庫中,執行:

EXEC sp_grantdbaccess 'st1';
EXEC sp_grantdbaccess 'st2';      

已經能夠進入資料庫

【資料庫系統概論】實驗五 SQL資料庫安全控制

3. 以st1登入,是否能對student表進行查詢、修改、删除?

查詢使用者屬性顯示無任何權限:

【資料庫系統概論】實驗五 SQL資料庫安全控制

無法查詢到使用者表:

【資料庫系統概論】實驗五 SQL資料庫安全控制

無法進行建立、添加、删除:

【資料庫系統概論】實驗五 SQL資料庫安全控制

4. 以管理者登入,授予st1查詢、修改student,sc表的權限,并允許st1将權限轉授。将student表中學生年齡增加1歲。

授予使用者st1查詢、修改student,sc表的權限:

GRANT SELECT,UPDATE 
ON T.Student
TO "st1" 
WITH GRANT OPTION;

GRANT SELECT,UPDATE 
ON T.SC
TO "st1" 
WITH GRANT OPTION;      
【資料庫系統概論】實驗五 SQL資料庫安全控制

登入賬戶st1将student表中學生年齡增加1歲:

UPDATE T.Student SET sage=sage+1;      
【資料庫系統概論】實驗五 SQL資料庫安全控制

更新前:

【資料庫系統概論】實驗五 SQL資料庫安全控制

更新後:

【資料庫系統概論】實驗五 SQL資料庫安全控制

5. 以st1登入,将對student,sc表的查詢、修改權限授予st2。

GRANT SELECT,UPDATE 
ON T.Student
TO "st2";

GRANT SELECT,UPDATE 
ON T.SC
TO "st2";      
【資料庫系統概論】實驗五 SQL資料庫安全控制
【資料庫系統概論】實驗五 SQL資料庫安全控制

6. 以st2登入,查詢student,将sc表中學生成績增加10%。

st2賬戶進行登入:

【資料庫系統概論】實驗五 SQL資料庫安全控制

查詢student:

【資料庫系統概論】實驗五 SQL資料庫安全控制

将sc表中學生成績增加10%:

【資料庫系統概論】實驗五 SQL資料庫安全控制

更新前:

【資料庫系統概論】實驗五 SQL資料庫安全控制

更新後:

【資料庫系統概論】實驗五 SQL資料庫安全控制

7. 收回st1對表student,sc的查詢、修改權限。

登入管理者賬戶sa,收回st1的權限:

REVOKE SELECT,UPDATE 
ON T.Student
FROM "st1"
CASCADE;      
【資料庫系統概論】實驗五 SQL資料庫安全控制

8. 删除使用者st1,st2。删除登入名st1,st2。

EXEC sp_dropuser 'st1';
EXEC sp_droplogin 'st1';
EXEC sp_dropuser 'st2';
EXEC sp_droplogin 'st2';      
DROP USER "st1";
DROP USER "st2";
DROP LOGIN "st1";
DROP LOGIN "st2";