0
点赞
收藏
分享

微信扫一扫

【数据库系统概论】实验五 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数据库安全控制_sqlserver_02


访问stu_db数据库:

【数据库系统概论】实验五 SQL数据库安全控制_存储过程_03

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数据库安全控制_sqlserver_04

3. 以st1登录,是否能对student表进行查询、修改、删除?

查询用户属性显示无任何权限:

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


无法查询到用户表:

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


无法进行创建、添加、删除:

【数据库系统概论】实验五 SQL数据库安全控制_删除用户_07

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数据库安全控制_删除用户_08


登录账户st1将student表中学生年龄增加1岁:

UPDATE T.Student SET sage=sage+1;

【数据库系统概论】实验五 SQL数据库安全控制_存储过程_09


更新前:

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


更新后:

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

5. 以st1登录,将对student,sc表的查询、修改权限授予st2。

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

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

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


【数据库系统概论】实验五 SQL数据库安全控制_存储过程_13

6. 以st2登录,查询student,将sc表中学生成绩增加10%。

st2账户进行登录:

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


查询student:

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


将sc表中学生成绩增加10%:

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


更新前:

【数据库系统概论】实验五 SQL数据库安全控制_存储过程_17


更新后:

【数据库系统概论】实验五 SQL数据库安全控制_删除用户_18

7. 收回st1对表student,sc的查询、修改权限。

登录管理员账户sa,收回st1的权限:

REVOKE SELECT,UPDATE 
ON T.Student
FROM "st1"
CASCADE;

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


【数据库系统概论】实验五 SQL数据库安全控制_存储过程_20

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


举报

相关推荐

0 条评论