版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE7数据库原理实验报告题目:实验五 安全性及事务操作学号:成绩班级: 计算12日期:姓名:指导老师:林颖贤一、实验目的:1、掌握SQL Server的安全机制; 2、掌握服务器的安全性的管理;3、掌握数据库用户的管理;4、掌握权限的管理。二、实验使用环境:Windows 7 x64、SQL Server 2005三、实验内容与完成情况:1、安全性综合实验1)设计安全机制使得用户“test”只能查询采购部门的职工。 sp_addlogin test,123execute sp_grantdbaccess test,wangmingcreate view V_empasselect * fr
2、om Employeeswhere Emp_depart=采购部grant select on V_emp to wangmingselect * from V_emp2)设计角色“Employees”,可以查看“职工”的职工号与姓名。并将用户“test”作为成员加入角色“Employees”, 这样用户“test”只能查看“职工”的职工号与姓名。 exec sp_addrole employeesp_addrolemember employee,wangmingcreate view V_Role_Empasselect Emp_no,Emp_name from Employeesgrant
3、 select on V_Role_Emp to employeeselect * from V_Role_Emp3)请进行安全设置,用户李建国师拥有以下权力:他要能查进货表中的信息,并拥有对自已进货的信息修改的权限,其它表的信息无权查看。sp_addlogin test1,123exec sp_grantdbaccess test1,李建国create view V_Liasselect * from Purchase where Emp_no in(select Emp_no from employees where Emp_name=李建国)grant select,update on
4、V_Li to 李建国grant select on Purchase to 李建国4)如何使得采购部门的员工都具有这样的权限:能查看进货表的信息,并拥有对自已采购信息的修改,其它的信息无权查看。(要求:编写存储过程proc_stu_grant,其作用:输入参数为员工姓名,从进货表中查找该员工所进货的产品,如果没有则返回,有的话则相应的在login表中添加账号和密码。并且,创建相应的登录账号和数据库用户)create proc proc_emp_grant Emp_name nvarchar(10)asbegindeclare sqlstr varchar(255)declare sqlvie
5、w varchar(14)if exists (select Pur_no from Purchase where Emp_no in (select Emp_no from Employees where Emp_name=Emp_name) begin set sqlview=Emp_name+_view set sqlstr=create view +sqlview+ as select * from Purchase where Emp_no in(select Emp_no from employees where Emp_name=+Emp_name+) exec(sqlstr)
6、exec sp_addlogin Emp_name,123456 exec sp_grantdbaccess Emp_name,Emp_name set sqlstr=grant select on Purchase to +Emp_name exec(sqlstr) set sqlstr=grant select,update on +sqlview+ to +Emp_name exec(sqlstr) endelse print没有该员工的进货信息!endexec proc_emp_grant 赵明exec proc_emp_grant 赵哈哈5)银行转账问题CREATE TABLE ba
7、nk -创建账户表,存放用户的账户信息( customerName CHAR(10), -顾客姓名 currentMoney MONEY -当前余额)GO-添加约束:根据银行规定,账户余额不能少于1元,否则视为销户 ALTER TABLE bank ADD CONSTRAINT CK_currentMoney CHECK(currentMoney=1)GO-张三开户,开户金额为1000元 ;李四开户,开户金额1元 INSERT INTO bank(customerName,currentMoney) VALUES(张三,1000)INSERT INTO bank(customerName,cu
8、rrentMoney) VALUES(李四,1)写出用事务解决银行转账的存储过程:create table bank( customerName char(10), currentMoney money)alter table bank add constraint ck_currentMoney check(currentMoney=1)insert into bank(customerName,currentMoney) values (张三,1000)insert into bank(customerName,currentMoney) values (李四,1)select * fro
9、m bankcreate proc proc_banksend char(10),receive char(10),money moneyasbegindeclare xianyou moneyselect xianyou=currentMoney from bank where customerName=sendif(xianyou-money)0) begin begin tran fail update bank set currentMoney=currentMoney-money where customerName=send update bank set currentMoney
10、=currentMoney+money where customerName=receive print转账失败! rollback tran fail endelse begin update bank set currentMoney=currentMoney-money where customerName=send update bank set currentMoney=currentMoney+money where customerName=receive print转账成功! endendexec proc_bank 张三,李四,500四、出现的的问题及解决方案1、问题:删除用户时提示异常。解决方案:在删除用户时,先删除对应的构架,再删除对应的用户。2、问题:操作不在对应数据库。解决方案:执行代码前,养成良好习惯,先使用use命令,切换到指定数据库。3、问题:begin与end经常没有一一对应。解决方案:在代码排版上缩进一致,便
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024股东之间股权转让协议书范本新
- 2024年公司奖惩管理制度
- 2024认缴人工智能教育平台股权投资协议范本3篇
- 2024建筑二次结构合同
- 2024路面硬化工程设计与施工总承包合同3篇
- 2024版咖啡馆服务员工作合同
- 2024购销日化用品的合同
- 2024货物运输合同3篇
- 2024跨国企业研发共享协议
- 2024防水维修保修协议书范本
- 一年级数学下册平面图形数个数问题详解+练习
- 锦纶纤维研究报告-中国锦纶纤维行业竞争格局分析及发展前景研究报告2020-2023年
- 浙江省舟山市2023-2024学年高二上学期1月期末检测地理试题(解析版)
- 国家电网有限公司架空输电线路带电作业工作管理规定
- 计算机安全弱口令风险
- 《写字楼招商方案》课件
- 文旅剧本杀项目策划方案
- 白铜锡电镀工艺
- 拜耳法氧化铝生产工艺
- 员工述职3个月转正报告
- 2022年海南省公务员录用考试《申论》真题试卷及答案
评论
0/150
提交评论