• 【数据库系统概论】实验五 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';
    
    • 1
    • 2
    • 3

    账号创建成功:
    image.png
    使用st1账户进行登录:
    image.png
    访问stu_db数据库:
    image.png

    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';
    
    • 1
    • 2

    已经能够进入数据库
    image.png

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

    查询用户属性显示无任何权限:
    image.png
    无法查询到用户表:
    image.png
    无法进行创建、添加、删除:
    image.png

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    UPDATE T.Student SET sage=sage+1;
    
    • 1

    image.png
    更新前:
    image.png
    更新后:
    image.png

    5. 以st1登录,将对student,sc表的查询、修改权限授予st2。
    GRANT SELECT,UPDATE 
    ON T.Student
    TO "st2";
    
    GRANT SELECT,UPDATE 
    ON T.SC
    TO "st2";
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image.png
    image.png

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

    st2账户进行登录:
    image.png
    查询student:
    image.png
    将sc表中学生成绩增加10%:
    image.png
    更新前:
    image.png
    更新后:
    image.png

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

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

    REVOKE SELECT,UPDATE 
    ON T.Student
    FROM "st1"
    CASCADE;
    
    • 1
    • 2
    • 3
    • 4

    image.png
    image.png

    8. 删除用户st1,st2。删除登录名st1,st2。
    EXEC sp_dropuser 'st1';
    EXEC sp_droplogin 'st1';
    EXEC sp_dropuser 'st2';
    EXEC sp_droplogin 'st2';
    
    • 1
    • 2
    • 3
    • 4
    DROP USER "st1";
    DROP USER "st2";
    DROP LOGIN "st1";
    DROP LOGIN "st2";
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    关系数据库系统中的 NULL 值及其用途
    消防应急疏散指示系统在某生物制药工厂项目的应用
    mapstruct原理解析
    Go :测试零除法是否会引起恐慌(附完整源码)
    JAVA设计模式3:抽象工厂模式,这是一种创建型设计模式
    LeetCode常见题型——树
    深度学习实战01-卷积神经网络(CNN)实现Mnist手写体识别
    CleanMyMac是什么软件?有哪些特色功能?
    java毕业生设计学生选课咨询系统计算机源码+系统+mysql+调试部署+lw
    成语词典查询易语言代码
  • 原文地址:https://blog.csdn.net/weixin_44893902/article/details/127591179