实验三数据库的安全性.docx

上传人:b****0 文档编号:9490098 上传时间:2023-05-19 格式:DOCX 页数:12 大小:394.66KB
下载 相关 举报
实验三数据库的安全性.docx_第1页
第1页 / 共12页
实验三数据库的安全性.docx_第2页
第2页 / 共12页
实验三数据库的安全性.docx_第3页
第3页 / 共12页
实验三数据库的安全性.docx_第4页
第4页 / 共12页
实验三数据库的安全性.docx_第5页
第5页 / 共12页
实验三数据库的安全性.docx_第6页
第6页 / 共12页
实验三数据库的安全性.docx_第7页
第7页 / 共12页
实验三数据库的安全性.docx_第8页
第8页 / 共12页
实验三数据库的安全性.docx_第9页
第9页 / 共12页
实验三数据库的安全性.docx_第10页
第10页 / 共12页
实验三数据库的安全性.docx_第11页
第11页 / 共12页
实验三数据库的安全性.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验三数据库的安全性.docx

《实验三数据库的安全性.docx》由会员分享,可在线阅读,更多相关《实验三数据库的安全性.docx(12页珍藏版)》请在冰点文库上搜索。

实验三数据库的安全性.docx

实验三数据库的安全性

实验三:

数据库的安全性

一、实验目的

1.掌握Windows认证模式下数据库用户帐号的建立与取消方法;

2.掌握混合模式下数据库用户帐号的建立与取消方法;

3.掌握数据库用户权限的设置方法;

4.熟悉数据库数据库用户帐号的权限分配、回收等方法;

5.了解数据库角色的分类、作用及使用方法。

二、实验环境

SQLServer企业版

三、实验学时

2学时

四、实验原理:

1.Microsoft®SQLServer™可以在两种安全(身份验证)模式:

(1)Windows身份验证模式(Windows身份验证)

Windows身份验证模式使用户得以通过MicrosoftWindowsNT®4.0或Windows®2000用户帐户进行连接。

(2)混合模式(Windows身份验证和SQLServer身份验证)

混合模式使用户得以使用Windows身份验证或SQLServer身份验证与SQLServer实例连接。

在Windows身份验证模式或混合模式下,通过WindowsNT4.0或Windows2000用户帐户连接的用户可以使用信任连接。

2.SQLServer的安全机制

(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。

其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。

SQLServer中的登录名主要有两种:

第一种是Windows登录名,第二种是SQLServer登录名。

Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。

SQLServer登录名对应SQLServer验证模式,在该验证模式下,能够使用的账户类型主要是SQLServer账户。

(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。

用户安全对象是用来访问数据库的。

如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。

(3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。

架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。

数据库中的每一个用户都会有自己的默认架构。

这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。

数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。

至于操作的权限则由数据库角色所决定。

一个数据库使用者,想要登录服务器上的SQLServer数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如下图所示的安全验证。

 

3.数据库的存取控制:

授权和撤销权限

(1)GRANT

在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的Transact-SQL语句

语法:

1)语句权限:

GRANT{ALL|statement[,...n]}

TOsecurity_account[,...n]

2)对象权限:

GRANT

{ALL[PRIVILEGES]|permission[,...n]}

{

[(column[,...n])]ON{table|view}

|ON{table|view}[(column[,...n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}

}

TOsecurity_account[,...n]

[WITHGRANTOPTION]

[AS{group|role}]

(2)REVOKE

删除以前在当前数据库内的用户上授予或拒绝的权限。

语法

语句权限:

REVOKE{ALL|statement[,...n]}

FROMsecurity_account[,...n]

对象权限:

REVOKE[GRANTOPTIONFOR]

{ALL[PRIVILEGES]|permission[,...n]}

{

[(column[,...n])]ON{table|view}

|ON{table|view}[(column[,...n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}

}

TO|FROM}

security_account[,...n]

[CASCADE]

[AS{group|role}]

五、实验内容及步骤

以系统管理员身份登录到SQLServer服务器,在SQLServer2005界面中实现以下操作,并独立写出6—8题的程序代码;

1.在当前计算机中增加一个用户zhang和cheng,密码为secret。

使此用户通过winowsNT模式下登录SQLServer服务器,登录名分别为zhang和cheng;

2.新建以混合模式登录SQLServer服务器的用户登录名为stu1、stu2和stu3,登录密码为secret,默认登录数据库为stu;

3.将帐号zhang添加为数据库stu的用户,用户名为zhang;

4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3;

5.给数据库用户zhang赋予创建数据库的权限;

6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;

7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;

8.收回数据库用户stu2对student表和course表的删除操作的权限;

9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限如下:

1)对于student、course表只能进行数据查询;

2)只能对student表中sname进行更改;

3)对于sc表只能进行修改、删除或插入;

10.将登录帐号cheng同时拥有服务器角色serveradmin和securityadmin的权限;

11.删除服务器角色sysadmin的成员stu2和stu3;

六、样例模板

一、用户的创建

用户包括操作系统用户、服务器用户和数据库用户

1.创建操作系统用户u1、u2

以管理员的身份登录到Windows,打开“控制面板”(Win7)中的“用户账户”,创建

操作系统用户u1、u2。

2.创建数据服务器用户

(1)GUI方式(SQLServer2008为例):

以DBA的身份登录到SQLServerManagement

Studio,在对象资源管理器中选择“安全性”,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单选项,在“新建登录名”窗口中单击“搜索”按钮添加Windows用户u1,选择“Windows身份验证模式”,单击“确定”按钮完成。

(2)命令方式:

usemaster

createlogin[WIN-CF7AKAVRCJA\u1]fromwindows

(3)同样的方式将操作系统用户u2、u3加入到数据服务器。

3.创建数据库用户

以系统管理员身份登录到数据库服务器,分别以GUI方式和命令方式创建数据库用户

(1)GUI方式(SQLServer2008为例):

选中stu_12数据库,单击“安全性”,在其“用户”节点下右击,在弹出的快捷菜单中选择“新建用户”菜单项,在“数据库用户”窗口中输入要新建的数据库用户名和登录名,单击“确定”按钮。

(2)命令方式:

usestu_12

go

createuserstu_12_login03forlogin[WIN-CF7AKAVRCJA\u3]

go

(3)查看stu_12_login01的属性,此用户除了拥有默认架构外,没有分配相应权限。

(4)切换到操作系统用户u1,以u1的身份登录到SQLServerManagementStudio,

这时可以使用命令打开数据库stu_12。

如下图:

此时,以stu_12数据库用户stu_12_login01访问数据库stuinfo,访问被拒接。

二、数据库角色管理

这里只讨论固定数据库角色。

1.以界面方式为固定数据库角色添加成员:

在stu_12数据库中展开“安全性”角色数据库角色,选择“db.owner”,在弹出的

快捷菜单中选择“属性”菜单项,进入“数据库角色属性”窗口,单击“添加”按钮。

2.命令方式:

使用系统的存储过程

usestu_12

go

sp_addrolemember'db_owner','stu_login01'

此时,可以访问数据库的数据库对象,如下图:

切换到DBA,取消stu_12_login01的所有的角色,此时只能打开数据库,而不能访问数据库对象,如下图:

三、数据库的权限管理

1.以用户u2登陆数据服务器,并访问数据库stu_12

2.以系统管理员的身份登录,为操作系统用户u2登录数据库stu_12创建登录名stu_12_login02

3.切换到用户u1,为用户u2分配访问权限

4.切换到用户u2,可以看到学生表s对用户u2可见

5.执行访问的权限

6.执行未授权的权限

updatessetsage=30wheresname='丁蕾'

go

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2