SQLServer 实验八安全性检查

使用订单数据库完成下面的实验内容:

(1) 分别创建登录账号user01、user02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。

a) 以sa的身份登录到master 数据库中

b) 给出命令:

sp_addlogin user01,p888888

sp_addlogin user02,p888888

use OrderDB

sp_adduser user01,user01

sp_adduser user02,user02

(2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为user03。

a) 以sa的身份登录到master 数据库中

b) 给出命令:

sp_addlogin login03,p888888

use OrderDB

sp_adduser login03,user03

(3) 将员工表的所有权限授予全部用户。

以sa的身份登录

use OrderDB

grant select,delete,update,insert on Employee

to user01,user02,user03

(4) 授予user03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。

以sa的身份登录

use OrderDB

grant select on Product to user03

grant select,update on Employee(employeeNo,employeeName) to user03

(5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、PRICE列的UPDATE权限授予r3。

以sa的身份登录

use OrderDB

sp_addrole r3

sp_addrole r4

grant select on OrderDetail to r3

grant update on OrderDetail(price) to r3

(6) 收回全部用户对员工表的所有权限。

以sa的身份登录

use OrderDB

revoke select,delete,update,insert on Employee

from user01,user02,user03

(7) 将user01、user02两个用户赋予r3角色。

以sa的身份登录

use OrderDB

sp_addrolemember r3,user01

sp_addrolemember r3,user02

(8) 收回user02对订单明细表所有列的SELECT权限。

以sa的身份登录

use OrderDB

revoke select on OrderDetail from user02

(9) 在当前数据库中删除角色r4。

以sa的身份登录

use OrderDB

sp_droprole r4

(10) 授予user01建表和建视图的权限,user01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予user02和user03。

以sa的身份登录

use OrderDB

grant create table,create view to user01

以user01的身份登录

a) use OrderDB

b) CREATE TABLE EmployeeUser01 (

      employeeNo   char(8)       not null,    /*员工编号Eyyyynnn*/     

      empPassword  varchar(10)  not null,    /*登陆密码*/

      empName      varchar(20)  not null,    /*员工姓名*/

      sex          char(1)       not null                

      check(sex='男' or sex='女') ,        /*员工性别*/

      departmentNo char(3)      not null,     /*所属部门nnn*/

      postNo       char(3)      not null,     /*所属岗位nnn*/

      birthday     datetime,                      /*出生日期*/  

      salary       numeric(8,2),               /*薪水*/

      address      varchar(40),              /*员工住址*/

      telephone    varchar(15),              /*员工电话*/

      email        varchar(20),              /*员工邮箱*/

      constraint   EmployeeUser01PK primary key (employeeNo)  

)

c) create view ViewUser01 as

    select employeeNo,empName,birthday,telephone

    from EmployeeUser01

    where departmentNo like '1%'

d) grant select on EmployeeUser01 to user02,user03

   grant select on ViewUser01 to user02,user03

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Water plum

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值