一、实验目的
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";
转载:https://blog.csdn.net/weixin_44893902/article/details/127591179