第13章SQLServer2008的安全性管理_第1页
第13章SQLServer2008的安全性管理_第2页
第13章SQLServer2008的安全性管理_第3页
第13章SQLServer2008的安全性管理_第4页
第13章SQLServer2008的安全性管理_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章SQLServer2008的安全性管理本章学习目标:登录身份验证

服务器登录帐户管理用户帐户管理角色管理权限管理架构管理

开始第13章SQLServer2008的安全性管理13.1数据库安全性管理概述

13.2登录管理13.3用户帐户管理13.4角色管理13.5权限管理13.6架构13.7本章小结13.1数据库安全性管理概述对于任何数据库系统而言,保证数据的安全都是最重要的问题之一。安全性包括什么样的用户能够登录到SQLServer,以及用户登录后所能进行的操作。SQLServer2008的安全性管理主要包括SQLServer登录、数据库用户、角色、权限和架构等方面。13.1数据库安全性管理概述(1)SQLServer登录要想连接到SQLServer服务器实例,必须拥有相应的登录账户和密码。身份验证系统验证用户是否拥有有效的登录账户和密码,从而决定是否允许该用户连接到指定的SQLServer服务器实例。

13.1数据库安全性管理概述(2)数据库用户通过身份验证后,用户可以连接到SQLServer服务器实例。但是,这并不意味着该用户可以访问到指定服务器上的所有数据库。在每个SQLServer数据库中,都存在一组SQLServer用户账户。登录账户要访问指定数据库,就要将自身映射到数据库的一个用户账户上,从而获得访问数据库的权限。一个登录账户可以对应多个用户帐户。13.1数据库安全性管理概述(3)角色

为便于管理数据库中的权限,SQLServer提供了若干“角色”,这些角色是用于分组其他主体的安全主体。类似于MicrosoftWindows操作系统中的用户组,可以对用户进行分组管理。可以对角色赋予数据库访问权限,此权限将应用于角色中的每一个用户。

(4)权限

权限是规定了用户在指定数据库中所能进行的操作。13.1数据库安全性管理概述(5)架构

架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部。这些实体就像嵌套框放置在一起。服务器是最外面的框,而架构是最里面的框。特定架构中的每个安全对象都必须有唯一的名称。架构中安全对象的完全指定名称包括此安全对象所在的架构的名称。因此,架构也是命名空间。

13.2登录管理

13.2.1身份验证模式1.在安装过程中,必须为数据库引擎选择身份验证模式。可供选择的模式有两种:Windows身份验证模式和混合模式。Windows身份验证模式会启用Windows身份验证并禁用SQLServer身份验证。混合模式会同时启用Windows身份验证和SQLServer身份验证。Windows身份验证始终可用,并且无法禁用。13.2登录管理

13.2.1身份验证模式

2.更改安全身份验证模式

1)在SQLServerManagementStudio的对象资源管理器中,右键单击服务器,再单击“属性”。如图13-1所示。2)在“安全性”页上的“服务器身份验证”下,选择新的服务器身份验证模式,再单击“确定”。如图13-2所示。3)在SQLServerManagementStudio对话框中,单击“确定”以确认需要重新启动SQLServer。13.2登录管理

13.2.1身份验证模式

3.通过Windows身份验证进行连接

当用户通过Windows用户帐户连接时,如图13-3所示,SQLServer使用操作系统中的Windows主体标记验证帐户名和密码。也就是说,用户身份由Windows进行确认。SQLServer不要求提供密码,也不执行身份验证。Windows身份验证是默认身份验证模式,并且比SQLServer身份验证更为安全。Windows身份验证使用Kerberos安全协议,提供有关强密码复杂性验证的密码策略强制,还提供帐户锁定支持,并且支持密码过期。通过Windows身份验证完成的连接有时也称为可信连接,这是因为SQLServer信任由Windows提供的凭据。13.2登录管理

13.2.1身份验证模式

4.通过SQLServer身份验证进行连接当使用SQLServer身份验证时,如图13-4所示,在SQLServer中创建的登录名并不基于Windows用户帐户。用户名和密码均通过使用SQLServer创建并存储在SQLServer中。通过SQLServer身份验证进行连接的用户每次连接时必须提供其凭据(登录名和密码)。当使用SQLServer身份验证时,必须为所有SQLServer帐户设置强密码。13.2登录管理

13.2.2创建SQLServer登录名

1.创建使用Windows身份验证的SQLServer登录名(1)在SQLServerManagementStudio中创建登录名1)在SQLServerManagementStudio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。2)右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。如图13-5所示。13.2登录管理

13.2.2创建SQLServer登录名

1.创建使用Windows身份验证的SQLServer登录名(1)在SQLServerManagementStudio中创建登录名3)在“常规”页上的“登录名”框中输入一个Windows用户名。如图13-6所示。4)选择“Windows身份验证”。5)单击“确定”。

13.2登录管理

13.2.2创建SQLServer登录名

1.创建使用Windows身份验证的SQLServer登录名(2)通过Transact-SQL语句创建登录名CREATELOGIN<nameofWindowsUser>FROMWINDOWS;GO【例13-1】在查询编辑器中,输入以下Transact-SQL命令:如图13-7所示。CREATELOGIN[C18CABF5E4EE466\gdm]FROMWINDOWS;GO13.2登录管理

13.2.2创建SQLServer登录名

2.

创建使用SQLServer身份验证的SQLServer登录名

(1)

在SQLServerManagementStudio中创建登录名1)在SQLServerManagementStudio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。2)右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。3)在“常规”页上的“登录名”框中输入一个新登录名的名称。如图13-8所示。13.2登录管理

13.2.2创建SQLServer登录名

2.

创建使用SQLServer身份验证的SQLServer登录名

4)选择“SQLServer身份验证”。Windows身份验证是更安全的选择。5)输入登录名的密码。6)选择应当应用于新登录名的密码策略选项。通常,强制密码策略是更安全的选择。7)单击“确定”。

13.2登录管理

13.2.2创建SQLServer登录名

2.

创建使用SQLServer身份验证的SQLServer登录名

(2)通过Transact-SQL创建登录名

CREATELOGIN<loginname>WITHPASSWORD='<password>';GO【例13-2】在查询编辑器中,输入以下Transact-SQL命令:如图13-9所示。

CREATELOGINgdm_sqlWITHPASSWORD=‘gdm1234';GO

13.3用户帐户管理

拥有登录账户的用户通过SQLServer身份验证后,就获得了对SQLServer实例的访问权限,但是如果要访问某个具体的数据库,还必须有一个用于控制在数据库中所执行的活动的SQLServer用户账户。登录账户映射到SQLServer用户账户,就可以实现对数据库的访问了。如果数据库中没有用户帐户,那么即使用户能够连接到SQLServer实例,也无法访问该数据库。数据库用户是数据库级别上的主体。每个数据库用户都是public角色的成员。

13.3用户帐户管理

13.3.1系统用户

在数据库内使用用户标识符(ID)标识用户。在数据库内,对象的全部权限和所有权由用户账户控制。用户账户与数据库相关。创建数据库对象(表、索引、视图、触发器、函数或存储过程)的用户称为数据库对象所有者。创建数据库对象的权限必须由数据库所有者或系统管理员授予。数据库对象所有者没有特殊的登录ID或密码。对象创建者被隐性授予数据库的所有权限,但其他用户必须被显式授予权限后才能访问该对象。

13.3用户帐户管理

13.3.1系统用户

1.dbodbo是具有在数据库中执行所有活动权限的用户。将固定服务器角色sysadmin的任何成员都映射到每个数据库内称为dbo的一个特殊用户上。另外,由固定服务器角色sysadmin的任何成员创建的任何对象都自动属于dbo。

13.3用户帐户管理

13.3.1系统用户

2.guestguest用户账户没有相关联的登录账户,它允许没有用户账户的登录访问数据库。当满足下列所有条件时,登录采用guest用户的标识:(1)登录有访问SQLServer实例的权限,但没有通过自己的用户账户访问数据库的权限。(2)数据库中含有guest用户账户

13.3用户帐户管理

13.3.1系统用户2.guest创建数据库时,该数据库默认包含guest用户。授予guest用户的权限由在数据库中没有用户帐户的用户继承。不能删除guest用户,但可通过撤消该用户的CONNECT权限将其禁用。可以通过在master或tempdb以外的任何数据库中执行REVOKECONNECTFROMGUEST来撤消CONNECT权限。

13.3用户帐户管理

13.3.2创建数据库用户(1)

使用SQLServerManagementStudio创建数据库用户1)打开对象资源管理器,然后展开“数据库”文件夹。2)展开要在其中创建新数据库用户的数据库。3)右键单击“安全性”文件夹,指向“新建”,再单击“新建用户”。如图13-10所示。4)在“常规”页的“用户名”框中输入新用户的名称。5)在“登录名”框中,输入要映射到数据库用户的SQLServer登录名的名称。6)单击“确定”。如图13-11所示。

13.3用户帐户管理

13.3.2创建数据库用户(2)使用Transact-SQL创建数据库用户

1)在查询编辑器中,通过执行以下Transact-SQL命令连接至要在其中创建新数据库用户的数据库:USE<databasename>;GO2)通过执行以下Transact-SQL命令创建用户:CREATEUSER<newusername>FORLOGIN<loginname>;GO

13.3用户帐户管理

13.3.2创建数据库用户(2)使用Transact-SQL创建数据库用户

【例13-3】在查询编辑器中,输入以下Transact-SQL命令:如图13-12所示。USECJMSGOCREATEUSERgdm_sqlFROMLOGINgdm_sql

13.4角色管理

在SQLServer中,可以通过定义角色对用户进行分组,规范用户的权限。角色是一个强大的工具,它可以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。权限在用户成为角色成员时自动生效。角色分为服务器角色、数据库角色和应用程序角色。服务器角色是服务器级的一个对象,只能包含登录名。数据库角色是数据库级的一个对象,只能包含数据库用户名。

13.4角色管理

13.4.1服务器级别角色为便于管理服务器上的权限,SQLServer提供了若干“角色”——服务器级角色,也称为“固定服务器角色”,用户不能创建新的服务器级角色。服务器级角色的权限作用域为服务器范围。服务器级角色及其能够执行的操作见表13-1所示。

13.4角色管理

13.4.1服务器级别角色(1)可以向服务器级角色中添加SQLServer登录名、Windows帐户和Windows组。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。

可以使用SQLServerManagementStudio将登录名添加到固定服务器角色

13.4角色管理

13.4.1服务器级别角色具体操作步骤如下:1)在SQLServerManagementStudio中,打开对象资源管理器,然后展开“服务器”文件夹。2)展开“安全性”文件夹,然后展开“服务器角色”文件夹。如图13-13所示。3)双击需要添加登录账户的服务器角色,弹出“服务器角色属性”对话框。如图13-14所示。4)单击“添加”按钮,然后选择要添加的登录名。5)单击“确定”按钮,完成操作。

13.4角色管理

13.4.1服务器级别角色(2)可以在登录账户的“属性”对话框中,如图13-15所示,在弹出的“登录属性”对话框中,如图13-16所示,选择“服务器角色”选项卡,选中相应的服务器角色的复选框,将登录账户添加到该服务器角色中,如图13-17所示。

13.4角色管理

13.4.2数据库级别的角色为便于管理数据库中的权限,SQLServer提供了若干“角色”——数据库级角色,数据库级角色的权限作用域为数据库范围。SQLServer中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和用户创建的“灵活数据库角色”。固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。固定数据库角色及其能够执行的操作见表13-2所示。

13.4角色管理

13.4.2数据库级别的角色db_owner和db_securityadmin数据库角色的成员可以管理固定数据库角色成员身份。但是,只有db_owner数据库角色的成员能够向db_owner固定数据库角色中添加成员。msdb数据库中还有一些特殊用途的固定数据库角色。

13.4角色管理

13.4.2数据库级别的角色(1)可以向数据库级角色中添加任何数据库帐户和其他SQLServer角色。固定数据库角色的每个成员都可向同一个角色添加其他登录名。可以使用SQLServerManagementStudio将用户添加到固定数据库角色具体操作步骤如下:

13.4角色管理

13.4.2数据库级别的角色1)在SQLServerManagementStudio中,打开对象资源管理器,然后展开“服务器”文件夹。2)展开“数据库”文件夹,展开要添加用户的数据库,展开“安全性”文件夹,然后展开“数据库角色”文件夹。如图13-18所示。3)双击需要添加用户登录账户的数据库角色,弹出“数据库角色属性”对话框。如图13-19所示。4)单击“添加”按钮,然后选择要添加的登录名。5)单击“确定”按钮,完成操作。

13.4角色管理

13.4.2数据库级别的角色(2)可以在用户的“属性”对话框中,选中相应的数据库角色的复选框,将用户添加到该数据库角色中,如图13-20所示。

13.4角色管理

13.4.3应用程序角色应用程序角色使应用程序能够以其自身的、类似用户的权限来运行。使用应用程序角色,可以只允许应用程序连接的用户访问特定数据。与数据库角色不同的是,应用程序角色默认情况下不包含任何成员,而且是非活动的。应用程序角色使用两种身份验证模式,可以使用sp_setapprole来激活,并且需要密码。在SQLServerManagementStudio中,打开对象资源管理器,然后展开“数据库”—“安全性”—“角色”,可以看到指定数据库中的角色信息。每个数据库内都包含数据库角色和应用程序角色。

13.5权限管理

13.5.1权限的类型可以对SQLServer2008中的各种数据库对象设置权限,包括数据库、表、视图、存储过程、架构等。权限用来控制用户如何访问数据库对象。一个用户可以直接分配到权限,以可以作为一个角色的成员来间接的得到权限。一个用户可以同时属于具有不同权限的多个角色。权限分为:对象权限、语句权限、暗示性权限。

13.5权限管理

13.5.1权限的类型1.对象权限对象权限是指用户访问和操作数据库中表、视图、存储过程等对象的权限。有五个不同的权限:查询(select)插入(insert)更新(update)删除(delete)执行(execute)前四个权限用于表和视图,执行只用于存储过程。

13.5权限管理

13.5.1权限的类型2.语句权限

语句权限是指用户创建数据库或在数据库中创建或修改对象、执行数据库或事务日志备份的权限。语句权限有:BACKUPDATABASEBACKUPLOGCREATEDATABASEDEFAULT

13.5权限管理

13.5.1权限的类型2.语句权限

CREATEFUNCTIONCREATEPROCEDURECREATERULECREATETABLECREATEVIEW

13.5权限管理

13.5.1权限的类型3.暗示性权限暗示性权限是指系统预定义角色的成员或数据库对象所有者所拥有的权限。例如,sysadmin固定服务器角色成员自动继承在SQLServer安装中进行操作或查看的全部权限。数据库对象所有者还有暗示性权限,可以对所拥有的对象执行一切活动。

13.5权限管理

13.5.2权限的管理暗示性权限不需要设置,它是数据库角色和用户默认拥有的权限。可以对对象权限和语句权限进行设置。设置权限包括授予权限(GRANT):赋予用户某权限、拒绝权限(DENY):禁止用户的某权限、废除权限(REVOKE):撤销以前授予或拒绝的权限等。

13.5权限管理

13.5.2权限的管理(1)

使用SQLServerManagementStudio管理权限

在SQLServerManagementStudio中,右键单击一个表、视图或存储过程,在快捷菜单中选择“属性”,打开表属性窗口。在“选择项”列表中选择“权限”,可以设置权限。如图13-21所示。

13.5权限管理

13.5.2权限的管理(2)使用Transact-SQL语句管理权限1)语句权限GRANT/DENY/REVOKE{ALL|statement[,...n]}TOsecurity_account[,...n]【例13-4】给用户gdm创建表的权限。USECJMSGOGRANTCREATETABLETOgdm

13.5权限管理

13.5.2权限的管理(2)使用Transact-SQL语句管理权限2)对象权限GRANT/DENY/REVOKE

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

{

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

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

|ON{stored_procedure|extended_procedure}

}

13.5权限管理

13.5.2权限的管理(2)使用Transact-SQL语句管理权限【例13-5】授予用户gdm在tblStudents表上的SELECT、UPDATE和INSERT权限。USECJMSGOGRANTSELECT,UPDATE,INSERTONtblStudentsTOgdm

13.5权限管理

13.5.2权限的管理(2)使用Transact-SQL语句管理权限【例13-6】拒绝用户gdm创建视图的权限。【例13-7】废除用户gdm创建表和视图的权限。DENYCREATEVIEWTOgdmREVOKECREATETABLE,CREATEVIEWTOgdm

13.6架构

架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。为了避免名称冲突,同一架构中不能有两个同名的表。

13.6架构

(1)使用SQLServerManagementStudio创建架构1)在SQLServerManagementStudio的对象资源管理器中,展开“数据库”文件夹,展开“安全性”文件夹,展开“架构”文件夹,如图13-22所示。2)右键单击“架构”,在弹出菜单中选择“新建架构”,打开“新建架构”窗口,如图13-23所示。填写架构名称和架构的所有者,然后单击“确定”按钮。新建的架构会出现在对象资源管理器中。

13.6架构

(2)使用Transact-SQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论