• 【数据库系统概论】实验五 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
  • 相关阅读:
    Union类型和集合的union()方法-set.union()
    开源一个RAG大模型本地知识库问答机器人-ChatWiki
    【校招VIP】产品群面角色之闪光者
    Win10怎么设置待机时间
    网课查题公众号快速搭建法 内含接口及新手教程
    【数据结构】单链表
    Java内存区域及类加载详解
    【论文阅读|深读】SDNE:Structural Deep Network Embedding
    构造函数和对象的区别
    【JUC】Java并发编程从挖坑到入土全解(3-线程池源码分析)
  • 原文地址:https://blog.csdn.net/weixin_44893902/article/details/127591179