数据库安全性

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

西安邮电大学

(计算机学院)

课内实验报告

实验:数据库的安全性实验

课程:数据库原理及应用A 班级:计科1406

学号: 04141170

学生姓名:张嘉璐

任课教师:孟彩霞

一、实验目的

(1)理解SQL Server 2000验证用户社身份的过程,掌握设置身份验证模式的方法;

(2)理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法;(3)掌握混合认证模式下数据库用户的建立与取消方法;

(4)掌握数据库用户权限的设置方法;

(5)理解角色的概念,掌握管理角色技术。

二、实验内容

数据库的安全性主要是用户管理和权限管理。在A.5节中介绍了SQL Server 的安全性管理,复习其内容,并完成以下实验。

1. 在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server和Windows”模式(即混合模式)。

在A.5节中已经介绍,一个用户要访问SQL Server 2000数据库中的数据,他必须要经过3个认证过程。第一,验证用户连接到SQL Server 2000数据库服务器的资格;第二,验证对具体数据库的访问权;第三,验证用户是否具有对所操作对象的操作权。理解和体会这一认证过程。

2. 创建、管理数据库服务器的登账号。

(1)用T-SQL语句创建、查看、删除登录账号。

创建一个名为student、密码为111、使用的默认数据库为JWGL的登陆账号。

EXEC sp_addlogin ‘student’ , ’111’ , ’JWGL’

查看登录账号为EXEC sp_helplogins

删除登陆账号为EXEC sp_droplogin ‘student’

(2)在企业管理器中使用A.5.2节中介绍的方法创建一个登录账号。

3. 创建、管理数据库用户。用户是基于数据库的名称是和登录账号相关联的。只有DBA和数据库所有者才有执行系统存储过程sp_granddbaccess的权力。

(1)用T-SQL语句创建、查看、删除数据库用户。

为数据库JWGL创建一个用户user1,该用户登陆SQL Server服务器的账号为wang,登陆密码为secret,写出相应的程序代码为

EXEC sp_addlogin ‘wang’, ‘secret’ , ‘JWGL’

EXEC sp_grantdbaccess ‘wang’ , ‘user1’

查看数据库用户中为EXEC sp_helpuser

删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’

(2)使企业管理器创建、查看、删除数据库用户。

使用企业管理器为数据库JWGL创建一个用户user2,该用户登录SQL Server 服务器的账号为zheng,登录密码为123456.

4. 管理用户权限。用户权限的管理可以使用企业管理器,也可以使用T-SQL 语句。分别使用企业管理器和T-SQl语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。

5. 创建、管理数据库角色。

若一个小组共3个成员,他们对JWGL具有相同的操作权限,具体权限为对Student、Course表只能进行数据查询;对SC表可以进行查询、修改、删除和

插入。

可以创建一个角色,给该角色赋予相应的的权限,然后给每个成员建立一个登录账号,并将每个成员的登录账号添加为数据库角色role的成员。其代码如下EXEC sp_addrole ‘role’

GO

GRANT SELECT ON student,course TO role

GRANT SELECT, UPDATE, INSERT ON SC

GO

EXEC sp_addrolemember ‘role’, ‘lin’

EXEC sp_addrolemember ‘role’, ‘wang’

EXEC sp_addrolemember ‘role’, ‘zheng’

删除角色role,然后再使用企业管理器完成以上任务。

删除角色role时,必须保证它不包含任何数据库用户,即要删除其下的所有成员。

EXEC sp_droproblemember ‘role’ , ‘lin’

EXEC sp_droproblemember ‘role’ , ‘wang’

EXEC sp_droproblemember ‘role’ , ‘zheng’

GO

EXEC sp_droprole ‘role’

三、实验环境

SQL Server 2000

四、实验前准备

存储过程和触发器是提高数据库服务性能的有力工具。存储过程独立于表,而触发器与表的结合紧密。用户可以通过存储过程完善应用程序,提高应用程序的效率;可以利用触发器实现比约束更灵活、更复杂的业务规则、更有效地实施数据完整性。

存储过程和触发器不是标准的SQL语句,不同的关系数据库管理系统在具体实现时语法会有所不同,但他们的基本原理是相似的。

存储过程是指经过预先编译的SQL语句的集合,可以以一种可执行的形式永久地存储在数据库中。

触发器是由用户定义在关系表上的一类特殊过程,该过程一经定义,任何用户对表的增加、删除、更新操作均由服务器自动激活相应的触发器,在DBMS 核心层进行集中完整性控制。触发器类似于约束,但是比约束更加灵活,可以实施比约束更加复杂的检查和操作,具有更强大的数据控制能力。

五、实验步骤

1.用企业管理器创建数据库:在企业管理器窗口中,在“数据库”上单击鼠标右键,弹出快捷菜单,然后在其中选择“新建数据库”命令,就会弹出“数据库属性”对话框,在“常规”选项卡中输入数据库名,如果数据文件和日志文件的属性都采用默认值,则可直接点击“确定”按钮,完成数据库的创建。如果要改变数据文件和日志文件的属性,可以选择“数据文件”选项卡和“日志文件”选项卡,进行相关属性的修改。

2.用企业管理器创建表:在企业管理器中,首先展开要创建表的数据库,右键单击该数据库下的“表”节点,在弹出的快捷菜单中选择“新建表”命令,就会弹出“表设计器”窗口,在表设计器窗口中定义表的结构,包括表中每个列的名称(列名必须唯一)、数据类型(可以在下拉框中选择)、长度、列是否为空、

相关文档
最新文档