实验3:数据库安全性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验3:数据库安全性

第1个实验.安全性定义——第5章实验八

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

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

sp_addlogin'user01','p888888','orderdb'

sp_addlogin'user02','p888888','orderdb'

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

sp_adduser'user03','login03'

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

grant all privileges on customer to public

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

grant select on product to login03

grant

select(employeeno,employeename),update(employeeno,employeename)on employee to login03

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

sp_addrole'r3'

sp_addrole'r4'

grant select,update(price)on orderdetail to r3

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

revoke all on employee from public

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

sp_addrolemember user01,r3

sp_addrolemember user02,r3

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

sp_addrole user02

revoke select on orderdetail from user02

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

sp_droprole r4

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

由于数据库中存在user01而user01的密码未知user01用user04 代替

grant create view to user04

创建表格Customer

create table Customer(

customerNo char(9)not null primary key,/*客户号*/ check(customerNo like

'[C][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

customerName varchar(40)not null,/*客户名称*/ telephone varchar(20)not null,/*客户电话*/ address char(40)not null,/*客户住址*/ zip char(6)null/*邮政编码*/ )

创建视图Customerno

create view Customerno as

select customerno,customername

from customer

grant select on customer to user02

grant select on customerno to user02

grant select on customer to user03

grant select on customerno to user03

第2个实验.安全性检查——第5章实验九使用订单数据库完成下面的实验,记录详细的操作过程:

(1)用户user07在订单数据库中创建一张表Table1。

sp_addlogin'user07','123456','orderdb'(master 中)

sp_adduser user07,user07(orderdb中)

grant create table to user07

create table Tabel (

productNo char(9)not null primary key,/*商品编号*/ productName varchar(40)not null,/*商品名称*/ productClass varchar(20)not null,/*商品类别*/ productPrice numeric(7,2)not null,/*商品定价*/

)

(2)用户user02对表Table1和表OrderDetail执行了插入和查询操作。

grant select to user02(sa 登录)

grant insert to user02

(3)用户user03建立两张表Table2和Table3和一个视图View1,然后将该表和视图的查询权限授予user05和user06,并具有转授权限。

1、sp_addlogin'user05','123456'(master)

sp_addlogin'user06','123456' //创建用户

2、 sp_adduser user05,user05(orderdetail)//添加用户

sp_adduser user06,user06

3、 grant create table,create view to user03(sa登录 orderdb中)//赋

予权限

4、创建表Table2和Table3:

create table table2(

table2no char(10)not null primary key,

table2name varchar(30)not null,

)

create table table3(

table3no char(10)not null primary key,

table3name varchar(30)not null,

)

5、创建视图View1:

create view view1

as

select table2no

from table2

6、赋予user05 和user06权限

grant select on table2 to user05 with grant option

grant select on table3 to user05 with grant option

grant select on table2 to user06 with grant option

grant select on table3 to user06 with grant option

grant select on view1 to user05 with grant option

grant select on view1 to user06 with grant option

(4)user06用户需要对Product表进行插入操作,然后查询Product表的所有记录。

1、权限授予:grant select,insert to user06(sa登录 orderdb 中)

2、用户登录:

相关文档
最新文档