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

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

时间:2022-11-05 13:31:10浏览次数:40  
标签:st2 登录 sp st1 student SQL sc 数据库系统 数据库安全


一、实验目的

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数据库安全控制_数据库_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数据库安全控制_sql_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数据库安全控制_sql_10


更新后:

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

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

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

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

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


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

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

st2账户进行登录:

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


查询student:

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


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

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


更新前:

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


标签:st2,登录,sp,st1,student,SQL,sc,数据库系统,数据库安全
From: https://blog.51cto.com/vmuu/5825929

相关文章

  • mysql的sql设计中常用的子类类型以及长度
    数据类型以及长度idvarchar(32)姓名varchar(64)地址varchar(256)评论varchar(512)大文本varchar(4096)是否tinyint(1)本地日期毫秒datetime(3)本地日期,精确到......
  • [postgresql]用户管理
    前言PostgreSQL使用角色的概念管理数据库访问权限。角色是一系列相关权限的集合。为了管理方便,通常把一系列相关的数据库权限赋给一个角色,如果哪个用户需要这些权限,就把角......
  • mysql中int与unsigned的区别 int默认显示长度多少?
    作者:陈业贵华为云享专家51cto(专家博主明日之星TOP红人)阿里云专家博主文章目录​​区别​​​​int默认存储长度多少?​​区别默认的int类型,取值范围是-2147483648-......
  • mysql中使用null和not null的问题
    作者:陈业贵华为云享专家51cto(专家博主明日之星TOP红人)阿里云专家博主文章目录​​使用null的不好之处.​​​​所以,怎么办?​​使用null的不好之处.会占用内存空间。......
  • 零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)
    作者:陈业贵华为云享专家51cto(专家博主明日之星TOP红人)阿里云专家博主文章目录​​banner管理表(轮播图管理表)​​​​解析banner管理表(轮播图管理表)​​​​id解析:​......
  • 零售商贩mysql表设计:收货地址表 用户表(关联起来)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录​​sql​​sql收货地址表:CREATETABLE`user_address`(`id`int(11)NOTNULLAUTO_INCREMENT,......
  • Java MySQL Spring Struts Hibernate 动漫论坛的设计与实现文档 毕设实训实验
    JavaMySQLSpringStrutsHibernate动漫论坛的设计与实现文档实训实验能满足学习和二次开发可以作为熟悉Java的学习,作为老师阶段性学习的一个成功检验不再是单调的理解......
  • SQL语句之if,case
    其他函数、case语句1.聚合函数 max(),min(),avg(),sum(),count() 2.if(bool表达式,expr1,expr2) 如果bool表达式成立(true),......
  • 【mysql】 窗口函数
    背景MySQL从8.0开始支持开窗函数,这个功能在大多商业数据库中早已支持,也叫分析函数。窗口函数分为静态窗口和滑动窗口,静态窗口的大小是固定的,滑动窗口的大小可以根据设置......
  • Mysql主从复制代码记录
    主机部分在数据库安装目录下的my.ini文件[mysqld]server-id=1log-bin=D:\mysql-5.6.36-winx64\data\mysqlbinbinlog-ignore-db=mysqlbinlog-do-db=mydb2binlog_format......