数据库 实验四 SQL数据库安全控制

1. 创建登录用户st1,st2

       create login st1  with   password='123'

CREATE LOGIN st1 WITH PASSWORD='123456'
CREATE LOGIN st2 WITH PASSWORD='123456'

2. 使st1,st2成为stu_db的合法用户

  EXEC sp_grantdbaccess N'st1'  /sp_grantdbaccess为存储过程

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

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

无法进行查询,修改,删除.

4.  以管理员登录,授予st1查询、修改student,sc,course表的权限,并允许st1将权限转授。将student表中学生年龄增加1岁。

授予权限

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

student表中学生年龄增加1岁。

UPDATE T.Student SET sage=sage+1;

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

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

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

6.  st2登录

查询王华同学的平均成绩;

SELECT Student.Sno,Sname,AVG(Grade) '平均分'
FROM Student
JOIN SC ON Student.Sno = SC.Sno
WHERE Sname = '王华'
GROUP BY Student.Sno,Sname

8.  查询张亮同学超过他平均成绩的课程名称。

SELECT Cname
FROM SC
JOIN Course AS C ON SC.Cno = C.Cno
WHERE SC.Sno = '2023610632'
  AND SC.Grade > (
    SELECT AVG(Grade)
    FROM SC
    WHERE Sno = '2023610632'
  );

9.  sc表中李丽同学的成绩增加10%

UPDATE SC
SET Grade = Grade * 1.1
WHERE Sno = '2023610633';
SELECT Sname '姓名',Grade '成绩'
FROM SC
JOIN Student ON SC.Sno = Student.Sno
WHERE Sname = '李丽'

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

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

11. 删除用户st1,st2。删除登录名st1,st2

删除用户st1,st2    

EXEC sp_dropuser 'st1';
EXEC sp_droplogin 'st1';
EXEC sp_dropuser 'st2';
EXEC sp_droplogin 'st2';

删除登录名st1,st2

DROP USER "st1";
DROP USER "st2";
DROP LOGIN "st1";
DROP LOGIN "st2";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值