一、實驗目的
1.掌握SQL Server資料庫使用者基本操作
2.掌握SQL Server資料庫授權及回收權限的方法
二、實驗内容
- 建立登入使用者st1,st2
-
使st1,st2成為stu_db的合法使用者
EXEC sp_grantdbaccess N’st1’ /sp_grantdbaccess為存儲過程
- 以st1登入,是否能對student表進行查詢、修改、删除?
- 以管理者登入,授予st1查詢、修改student,sc表的權限,并允許st1将權限轉授。将student表中學生年齡增加1歲。
- 以st1登入,将對student,sc表的查詢、修改權限授予st2。
- 以st2登入,查詢student,将sc表中學生成績增加10%。
- 收回st1對表student,sc的查詢、修改權限。
- 删除使用者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';
賬号建立成功:

使用st1賬戶進行登入:
通路stu_db資料庫:
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';
已經能夠進入資料庫
3. 以st1登入,是否能對student表進行查詢、修改、删除?
查詢使用者屬性顯示無任何權限:
無法查詢到使用者表:
無法進行建立、添加、删除:
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;
登入賬戶st1将student表中學生年齡增加1歲:
UPDATE T.Student SET sage=sage+1;
更新前:
更新後:
5. 以st1登入,将對student,sc表的查詢、修改權限授予st2。
GRANT SELECT,UPDATE
ON T.Student
TO "st2";
GRANT SELECT,UPDATE
ON T.SC
TO "st2";
6. 以st2登入,查詢student,将sc表中學生成績增加10%。
st2賬戶進行登入:
查詢student:
将sc表中學生成績增加10%:
更新前:
更新後:
7. 收回st1對表student,sc的查詢、修改權限。
登入管理者賬戶sa,收回st1的權限:
REVOKE SELECT,UPDATE
ON T.Student
FROM "st1"
CASCADE;
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";