太原理工大学软件学院19级数据库实验三(2021.4.19)

太原理工大学数据库实验三(2021.4.19)

以下代码需按步骤复制到查询控制台

博主用的软件是DataGrip,与SQL Server Management Studio在操作上有些差别

1.以Windows凭据登录,逐句执行下面的代码

-- 1. 创建登录名
-- 用户要访问数据库,必须首先登录到服务器上。因此,首先需要为用户创建登录名。以系统管理员账户登录,进入数据库服务器,执行以下的操作。
-- (1)分别创建两个登录名王明和李刚:
CREATE LOGIN 王明 WITH password='123456'
CREATE LOGIN 李刚 WITH password='123456'
-- 其中:“王明”、“李刚”是用于登录数据库器的登录名,Password用于指定用户登录密码。
-- (2)展开服务器的“安全性”下的“登录名”,检查登录名是否创建成功。

-- 2. 创建数据库用户
-- 用户登录服务器后,要进入某一数据库访问,需要为登录用户在该数据库中建立一个数据库用户名。
-- 对创建的两个登录名,在TEST数据库分别为其创建两个数据库用户:
-- (1)切换到TEST数据:
-- USE TEST
-- (2)创建登录名在TEST数据库中的用户:
CREATE USER 王明db FOR LOGIN 王明
CREATE USER 李刚 FOR LOGIN 李刚
-- 其中:“王明”是登录名,“王明db”是该登录名在TEST数据库的用户名。这两个名称也可以同名。
-- (3)展开ST数据库的“安全性”下的“用户”,检查数据库用户是否创建成功。

-- 3. 授权
-- 在数据库中添加新用户后,新用户没用访问数据库中数据的权限,需要数据库管理人员给其授予相关的权限后,才能执行相应的操作。
-- 按照表3.1,授权如下:
-- (1)授予王明权限
GRANT SELECT ON Student TO 王明db

-- (2)授予李刚权限
GRANT SELECT ON Student TO 李刚
GRANT INSERT,UPDATE,DELETE ON Student TO 李刚
GRANT SELECT ON Course TO 李刚

2.用用户密码,以王明的身份登录,密码123456

在这里插入图片描述

-- 3.3 检查权限控制
-- 分别以两个登录名登录数据库,执行一些对数据库的操作,检查用户否允许执行相关的操作。
-- 1. 检查王明的权限
-- 以用户“王明”登录,执行如下的操作,检查能否正确的运行:

SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101101','高志','1008')--失败原因:王明没有对student的插入权限,切违反了完整性规则
UPDATE Student Set Sage = Sage +1--失败原因:王明没有对student的更新权限
DELETE FROM Student Where Sno = '20101010'--失败原因:王明没有对student的删除权限
SELECT * FROM Course
SELECT * FROM SC
-- 若不能运行,请解释为什么不能执行。


3.用用户密码,以李刚的身份登录,密码123456

在这里插入图片描述

-- 以用户“李刚”登录,执行如下的操作,检查能否正确的运行:
SELECT * FROM Student
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101201','钱红','1008')--失败原因:违反了数据完整性原则
UPDATE Student Set Sage = Sage + 1
DELETE FROM Student Where Sno = '20101210'
SELECT * FROM Course
INSERT INTO Course VALUES('20','FORTRAN语言',NULL,2)--失败原因:李刚对Coures表只有查询权限,没有其他权限
UPDATE Course Set Ccredit = 3 WHERE Cno='2'--失败原因:李刚对Coures表只有查询权限,没有其他权限
DELETE FROM Course Where Cno = '6'--失败原因:李刚对Coures表只有查询权限,没有其他权限
-- 若不能运行,请解释为什么不能执行。

4.以Windows凭据登录,逐句执行下面的代码

-- 3. 增加李刚的权限
-- 以用户“李刚”登录,执行如下的操作:
-- (1) 检查李刚能否对SC表执行查询、插入、修改、删除操作。
-- (2) 使用管理员帐号给李刚授予对SC表的查询、插入、修改、删除权限
grant select ,insert ,update ,delete on SC to 李刚

5.用用户密码,以李刚的身份登录,密码123456

-- (3) 再次检查李刚能否对SC表执行查询、插入、修改、删除操作。
--查询
select *from SC
--插入
INSERT INTO SC VALUES('20100001',2,NULL)
--修改
update SC set Cno = 3 where Cno = 2 and Grand = null
--删除
delete SC where Cno  = 3 and Sno = '20100001'

6.以Windows凭据登录,逐句执行下面的代码

-- 当不希望用户执行某些对数据库的操作时,可以撤销先前授予用户的操作权限。
-- (1)撤销权限
-- 以系统管理员帐号登录,撤销“李刚”对Student表的权限:
REVOKE SELECT ON Student FROM 李刚
REVOKE INSERT,UPDATE,DELETE ON Student FROM 李刚

7.用用户密码,以李刚的身份登录,密码123456

-- (2)检查权限
-- 以“李刚”帐号登录,检查如下的命令能否正确的运行:
SELECT * FROM Student--不能
INSERT INTO Student(Sno,Sname,Sclass) VALUES('20101501','赵光','1008')--不能
UPDATE Student Set Sage = Sage + 1--不能
DELETE FROM Student Where Sno = '20101510'--不能

完结撒花~
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值