当前位置:文档之家› 数据库的安全性管理

数据库的安全性管理

数据库的安全性管理
数据库的安全性管理
一、实验目的
1、掌握Windows登录名、SQL Server登录名的建立与删除方法;
2、掌握数据库用户创建与管理的方法;
3、掌握服务器角色的使用方法;
4、掌握数据库权限授予、拒绝和回收的方法
二、预备知识
对任何企业组织来说,数据的安全性最为重要。

安全性主要是指允许那些具有相应的数据访问权限的用户能够登录到SQL Server,并访问数据以及对数据库对象实施各种权限范围内的操作。

但是要拒绝所有的非授权用户的非法操作。

因此安全性管理与用户管理是密不可分的。

SQL Server 2008的安全管理体现在如下几个方面:
(1) 对用户登录进行身份验证。

当用户登录到数据库系统时,系统对该用户的账户和口令进行验证,包括确认用户账户是否有效以及能否访问数据库系统。

(2) 对用户执行的操作进行权限控制。

当用户登录到数据库后,只能对数据库中的数据在允许的权限内进行操作。

一个用户如果要对某一数据库进行操作,必须满足以下三个条件:
(1) 登录SQL Server服务器时必须通过身份验证;
(2)必须是该数据库的用户,或者是某一数据库角色的成员;
(3)必须有执行该操作的权限。

SQL Server 2008的身份验证模式有两种:Windows验证模式和SQL Server验证模式。

(1) Windows验证模式:用户登录Windows时进行身份验证,登录SQL Server时就不再进行身份验证。

只有将Windows账户加入到SQL Server中,才能采用Windows账户登录SQL Server。

(2) SQL Server验证模式:SQL Server服务器要对登录的用户进行身份验证。

系统管理员设定登录验证模式的类型可为Windows验证模式和混合模式。

当采用混合模式时,SQL Server系统既允许使用Windows登录名登录,也允许使用SQL Server登录名登录。

SQL Server 2008的安全性主体主要有三个级别,分别是:服务器级别、数据库级别、架构级别。

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

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

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

如果没有为用户赋予相应的角色,则该用户为public角色。

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

三、实验示例
【例9-1】设置SQL Server 混合验证模式
数据库的安全性管理要建立SQL Server验证模式的登录名,首先应将验证模式设置为混合模式。

如果在安装的时没有设置为混合模式,则先要将验证模式设为混合模式。

主要执行以下步骤:
(1)以系统管理员身份登录SQL Server Management Studio,在对象资源管理器中选择要登录的SQL Server 服务器图标,右击鼠标,在弹出的快捷菜单中选择“属性”菜单项,打开“服务器属性”窗口。

(2)在打开的“服务器属性”窗口中选择“安全性”选项卡。

如图9-1 所示,选择服务器身份验证为“SQL Server和Windows身份验证模式”,单击“确定”按钮,保存新的配置,重启SQL Server服务即可。

图9-1 安全性设置对话框
【例9-2】建立SQL Server 登录名
步骤如下:
(1)启动SQL Server Management Studio;
(2)在SQL Server Management Studio中单击安全性文件夹旁边的+ 标志;右击“登录”图标,从弹出菜单中可看到“新建登录名”选项,如图9-2 所示。

(3)单击“新建登录名”,弹出新建登录名对话框,如图9-3所示。

图9-2 安全选项中的登录菜单条
图9-3新建登录属性对话框
(4)在登录名编辑框中输入登录名,如User1。

数据库的安全性管理(5)在身份验证下的选项栏中,选择身份验证模式。

如果使用SQL Server 验证模式,那么在选择SQL Server身份验证单选按钮之后就必须在密码栏中输入密码。

如果使用Windows验证模式。

(6)在默认设置的两个选项框中,给出用户在登录时的默认数据库以及默认的语言。

(7)单击确定按钮创建登录。

为了测试创建的登录名能否连接SQL Server ,可以使用新建的登录名User1来进行测试。

具体步骤如下:
在对象资源管理器窗口中单击“连接”,在下拉框中选择“数据库引擎”,弹出“连接到服务器”对话框。

在该对话框中,“身份验证”选择“SQL Server 身份验证”,“登录名”填写User1,输入密码,,单击“连接”按钮,就能连接SQL Server了。

登录后的“对象资源管理器”界面如图9-4。

图9-4 使用SQL Server验证模式登录
【例9-3】建立SQL Server 数据库用户
数据库用户用来指出哪一个人可以访问哪一个数据库。

在一个数据库中,用户ID唯一标识一个用户,用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的。

用户名总是基于数据库的,即两个不同数据库中可以有两个相同的用户名。

在数据库中,用户名与登录名是两个不同的概念。

一个合法的登录名只表明该账号通过了Windows 验证或SQL Server 验证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作,所以一个登录名总是与一个或多个数据库用户名(这些名称必须分别存在相异的数据库中)相对应,这样才可以访问数据
数据库的安全性管理库。

例如登录名sa自动与每一个数据库用户dbo相关联。

通常而言数据库用户名总是与某一登录名相关联,但有一个例外,那就是guest用户。

在安装系统时,guest 用户被加入到master、pubs、tempdb和Northwind数据中。

guest 用户主要是让那些没有属于自己的用户名的SQL Server 登录者把其作为缺省的用户,从而使该登录者能够访问具有guest 用户的数据库。

使用SSMS为登录名User1创建数据库用户账户的步骤如下:(以Stu_Cou 为例)
以系统管理员的身份连接SQL Server,展开“数据库→Stu_Cou→安全性”,选择“用户”,右击鼠标,选择“新建用户”菜单项,进入“数据库用户--新建”窗口。

如图9-5所示。

在“用户名”框中输入一个数据库名(如TOM),在“登录名”框中填写一个能都登录SQL Server的登录名,如User1。

注意,一个登录名在本数据库中只能创建一个数据库用户。

选择默认架构dbo,单击“确定”按钮完成创建。

图9-5新建数据库用户
请按照上述方式依次建立SQL Server身份验证的登录名User2、User3、T1、T2、T3以及数据库Stu_Cou中的新用户User2、User3、T1、T2、T3。

【例9-4】查看数据库用户
在SSMS中选中数据库Stu_Cou,展开后,展开安全性,可看到“用户”图标,点开后可显示当前数据库的所有用户,如图9-6所示。

数据库的安全性管理
图9-6查看数据库用户
【例9-5】删除数据库用户
选中“用户”图标后,右击想要删除的数据库用户,则会弹出选项菜单,然后选择删除,则会从当前数据库中删除该数据库用户,见图9-7。

图9-7删除数据库用户
用命令方式创建登录名,create login 登录名with password='密码',defualt_database='数据库名'。

删除登录名的命令drop login 登录名。

创建用户名的命令create user for login 登录名with default_schema=dbo。

删除
数据库用户的命令为drop user 用户名。

【例9-6】权限管理
用户在登录到SQL Server 之后,其用户账号或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作,以及能够访问、修改哪些数据。

在SQL Server 中包括两种类型的权限:即对象权限和语句权限。

(1)对象权限:对象权限总是针对表、视图、存储过程而言。

它决定了能对表、视图、存储过程执行哪些操作(如UPDATE、DELETE、INSERT和EXECUTE)。

如果用户想要对某一对象进行操作,其必须具有相应的操作的权限。

例如,当用。

相关主题