数据库实验六

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

数据库上机实验六

实验名称:视图的建立与使用(续)和数据库的安全性控制

一、实验目的

1.加深掌握视图的定义与工作原理。

2.理解SQL SERVER 2000登录账户、数据库用户、角色、权限的概念及管理方法。

二、实验内容与步骤

1.对视图的操作

(1)创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。

create view cus_SH as

select cust_id, cust_name, addr

from customer

where addr = '上海'

(2)删除题1建立的视图中所有姓“王”的客户数据。

delete

from cus_SH

where cust_name like '王%'

(3)对题(1)建立的视图添加一条记录数据(注意:分别查看customer表和该视图的结果)。

insert into cus_SH

values ('10010','叶秀玲','武汉')

/*

无法将 NULL 值插入列 'tel_no',表 'Sale_Manage.dbo.customer';该列不允许空值。

INSERT 失败。

语句已终止。

*/

(4)通过题(1)建立的视图修改表内某一客户的姓名。

update cus_SH

set cust_name = '王子'

where cust_name = '王'

(5)有两个基本表employee和sales,创建一个视图,该视图包含相同业务员的编号、姓名、订单号、销售总金额。

create view emp_sale as

select emp_no, emp_name, order_no, tot_amt

from employee, sales

where emp_no = sale_id

(6)给题(5)建立的视图添加一条记录数据。

insert into emp_sale

values ('E1000', '肖萧', '1009', '900.00')

--视图或函数 'emp_sale' 不可更新,因为修改会影响多个基表。

(7)将题(5)建立的视图中订单号为1001的记录的销售总金额改为60000。

update emp_sale

set tot_amt = 60000

where order_no = '1001'

(8)删除题5建立的视图。

drop view emp_sale;

2.数据库的安全性控制

(1)创建两个新的SQL SERVER登录账户,其中一个登录账户名为Sale,密码为123456,使用的默认数据库为Sale_Manage;另一个登录账户名为Human,密码为654321,使用的默认数据库为Sale_Manage;

--查看登录账号:EXEC sp_helplogins

--exec sp_addlogin '登陆账号名', '密码', '默认数据库名', '使用的语言' exec sp_addlogin 'Sale', '123456', 'Sale_Manage', NULL

exec sp_addlogin 'Human', '654321', 'Sale_Manage', NULL

/* 运行结果:已创建新登录

已创建新登录

*/

(2)将Sale加入到securityadmin服务器角色中。

--EXEC sp_addsrvrolemember '登录帐号', '服务器角色名称'

EXEC sp_addsrvrolemember 'Sale', 'securityadmin'

--运行结果:'Sale' 已添加到角色 'securityadmin' 中。

(3)为数据库Sale_Manage的登录账户Sale创建一个数据库用户Person_Manage,为登录账户Human创建一个数据库用户human_Manage。

/*

查看数据库用户 use Sale_Manage

EXEC sp_helpuser

*/

--USE 数据库名

--EXEC sp_adduser ‘登录帐号’, ‘用户帐号’, ‘所属的数据库角色’

use Sale_Manage

exec sp_adduser 'Sale', 'Person_Manage', 'db_owner'

use Sale_Manage

exec sp_adduser 'Human', 'human_Manage', 'db_owner'

/*

运行结果:已向 'Sale' 授予数据库访问权。

'Person_Manage' 已添加到角色 'db_owner' 中。

已向 'Human' 授予数据库访问权。

'human_Manage' 已添加到角色 'db_owner' 中。

*/

(4)为数据库Sale_Manage创建一个数据库角色Managers,该角色拥有对数据库中的表employee查询和修改的权限。

/*查看数据库角色:use Sale_Manage

EXEC sp_helprole

查看自定义数据库角色的权限: EXEC sp_helprotect NULL, 'Managers'

创建数据库角色:USE 数据库名

EXEC sp_addrole ‘角色名’, ‘拥有者’

*/

USE Sale_Manage

EXEC sp_addrole 'Managers' , 'dbo'

--运行结果:新角色已添加

相关文档
最新文档