飞道的博客

【数据库系统概论】实验五 SQL数据库安全控制

250人阅读  评论(0)

一、实验目的

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';

账号创建成功:

使用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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场