ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:187.29KB ,
资源ID:14686367      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14686367.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(与SQL SERVER 安全控制相关的几点说明.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

与SQL SERVER 安全控制相关的几点说明.docx

1、与SQL SERVER 安全控制相关的几点说明与SQL SERVER 安全控制相关的几点说明(一)几个基本术语身份验证(Authentication)是指通过提交服务器评估的凭据以登录到主体请求访问的 SQL Server 的过程。身份验证可以确定接受身份验证的用户或进程的标识。用户、账户、账号、登录名、数据库用户名用户是指能够在SQL Server 安全机制下,访问数据库对象中的数据的操作员或客户。用户若要访问数据库对象,必须获得数据库管理员(DBA)分配的账号和密码。从SQL Server管理系统的角度来看,用户就是一组匹配的账户和密码。账户和账号是一个概念的不同说法,在服务器中的账户又叫

2、登录名(Login Name),因此访问服务器也称为登录服务器。服务器的登录名可以映射到数据库中成为数据库用户名(User Name)。一个登录名可以映射多个数据库用户,而一个用户只能映射一个登录名。连接或登录SQL Server服务器时是用的登录名而非用户名登录的,程序里面的连接字符串中的用户名也是指登录名。通常用户名与登录名相同(不是强制相同,但为了一目了然通常都在创建用户名时使用与登录名相同的名字)。提示:登录名(Login Name)和用户名(User Name)是两个不同的概念:登录名:服务器方的一个实体,登录名只能进入SQL Server服务器,但是不能让用户访问服务器中的数据库资

3、源。用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。登录名作用于它所在的服务器。每个登录名的定义存放在master系统数据库的syslogins表中。用户名作用于它所在的数据库。用户定义信息存放在每个数据库的sysusers表中。用登录名登录到SQL Server后,在访问操作各个数据库时,SQL Server会自动查询此数据库中是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库(guest是一个特殊的用户名,后面会讲到)。SQL身份验证:适合于非windows平台的用户或In

4、ternet用户, 需要提供账户和密码。Windows身份验证:适合于windows平台用户,利用Windows账户和windows集成验证,不需要提供密码。用户想要操作数据库的某个对象(如某张表)需要过三关:第一关:我们需要登录到SQL Server系统,即需要登录账户;第二关:我们需要访问某个数据库,即需要该数据库的用户账户;第三关:我们需要访问数据库中的某个对象(如某张表),需要有该对象的权限。主体(principal)是 可被授予对安全资源的访问权限的实体(例如登录名、用户、进程、组或角色)。主体可以是主体的集合(比如数据库角色或Windows组)或不可分割的主体(比如本地登录或域登录

5、)。每个主体都具有一个 ID (identification)和一个安全 ID (SID)。 Windows 级别的主体:Windows组、Windows 域登录名、Windows 本地登录名。 SQL Server 级的主体:服务器角色、SQL Server 登录名。 数据库级的主体:数据库角色、数据库用户、应用程序角色。上下文切换 (context switch), 更改检查执行语句或执行操作的权限时所依据的标识。服务器(server)1)指安装了SQL SERVER的计算机。2)指SQL Server实例计算机上运行的 SQL Server 的副本。3)指为用户提供服务的计算机软件或组件

6、。需要根据上下文理解。注册服务器注册服务器使您可以存储服务器连接信息(服务器的类型、服务器的名称、登录到服务器时使用的身份验证的类型等),以供将来连接时使用下次连接该服务器时,不需要重新输入登录信息。SQL Server 2000 在SQL Server 企业管理器中注册服务器,才能使用 SQL Server 企业管理器来管理这些服务器。从SQL Server 2005始,在 SQL Server Management Studio 中注册服务器,才能使用 SQL Server Management Studio 来管理这些服务器。在 Microsoft SQL Server 中,可以注册以下

7、类型的服务器:SQL Server 数据库引擎、Analysis Services、Reporting Services、Integration Services 和 SQL Server Compact 3.5 SP1。(二)SQL Server实例(SQL Server instance)SQL Server实例(SQL Server instance),简称实例 (instance),是计算机上运行的 SQL Server 的副本。同一台计算机上可以安装运行的多个 SQL Server 副本。每个SQL Server 实例都包含数据库引擎、Analysis Services 和 Repo

8、rting Services 的 SQL Server ,每个SQL Server数据库实例各有一套不为其他实例共享的系统及用户数据库。数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务。实例又分为“默认实例”(default instance)和“命名实例”(named instance),如果在一台计算机上安装第一个SQLSERVER,命名设置保持默认的话,那这个实例就是默认实例。默认实例与安装计算机具有相同名称。命名实例指安装SQL Server时给定了名称,可以安装多个命名实例,给定名称是为了与同一台计算机上的其他命名实例和默认实例区分开。SQL

9、 Server 应用程序可以通过仅指定服务器名称而连接到 SQL Server 的默认实例。SQL Server 应用程序在连接到服务器上的某个命名实例时必须既指定服务器名称又指定实例名称,计算机名称实例名称。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。如果要访问本机上的默认SQL服务器实例,使用计算机名、(local)、localhost、127.0.0.1、. 、本机IP地址,都可以达到相同的目的。但如果要访问非本机的SQL服务器,那就必须使用计算机名称实例名称。默认实例和命名实例的区别: 1、服务中服务名称的区别: (1)默认实例:MSSQLSERVE

10、R。 (2)有名命名实例:实列名为benet,在服务中的名称是MSSQL$BENET。 注:如果你有多个实例的时候会在服务中出现多个服务名称。 2、连接到查询分析器或探查器的时候区别: (1)默认实例可以使用:“.”(点)、“(local)”、“计算机名称”。 (2)实例名称:计算机名pcname,实例名benet,连接时使用的名称是pcnamebenet。 (三)安全对象和权限安全对象(Securable),可以通过权限得到保护的实体。是SQL Server 数据库引擎授权系统控制对其进行访问的资源。如表、视图、触发器等。SQL Server中将安全对象分为三个层次,分别为: 服务器层级,包

11、含的安全对象:端点、 登录、服务器角色、数据库。 数据库层级,包含的安全对象:用户、数据库角色、应用程序角色、程序集、消息类型、路由、服务、远程服务绑定、 全文目录、证书、非对称密钥、对称密钥、约定、架构。 构架(SCHEMA)层级,包含的安全对象:类型、XML 架构集合、对象(函数、过程、同义词、表、视图)这三个层级是从上到下包含的,级别从高到低。说明:端点(endpoint)为服务器级安全对象。Microsoft SQL Server 2005 中的连接管理基于“端点”。一个端点就是一个 SQL Server 对象,它能够使 SQL Server 在网络中通信。对于数据库镜像,服务器实例需

12、要有自己专用的“数据库镜像端点”。此端点用途特殊,专门用于接收来自其他服务器实例的数据库镜像连接。权限 (permission), 与对象关联的规则,用来规定哪些用户可以获得该对象的访问权限以及方式如何。对安全对象的访问通过授予或拒绝权限进行控制。权限可以明确用户能够使用哪些数据库对象,并对它们进行何种操作。用户在数据库内的权限取决于用户账号的权限和该用户所属的角色的权限。提示:在设置权限时,尤其要注意权限在安全对象上的继承关系。对于高级别安全对象上设置的权限,会被自动继承到低级别安全对象上。理解权限的继承和权限的覆盖会在设置权限时减少很多问题, 最佳方法是统筹规划,上机验证。(四)架构(sc

13、hema)架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部。这些实体就像嵌套框放置在一起。服务器是最外面的框,而架构是最里面的框。架构包含表、视图、过程、函数、同义词、类型、队列、XML架构集合等安全对象。注意: 在 SQL Server 2000 和早期版本中,数据库可以包含一个名为“架构”的实体, SQL Server 2000 包含 CREATE SCHEMA 语句,但此实体实际上是所有者(创建对象时的用户)。在 SQL Server 2005 开始,架构既是一个容器,又是一个命名空间。 任何用户都可以拥有架构,并且架构所有权可以转移。从 SQL Server

14、 2005 开始,每个用户都拥有一个默认架构。可以使用 CREATE USER 或 ALTER USER 的 DEFAULT_SCHEMA 选项设置和更改默认架构。如果未定义 DEFAULT_SCHEMA,则数据库用户将使用 dbo 作为默认架构。在SQL Server 2000中,DataBaseName.dbo.TableName解释为:数据库名.所有者.表名。从 SQL Server 2005 开始,DataBaseName.dbo.TableName解释为:数据库名.架构名.表名。在SQL Server 2000中,数据库对象全称是server_name .database_name.

15、owner_name.object_name 从SQL Server 2005始,数据库对象全称是server_name .database_name.schema_name.object_name 在SQL SERVER2000或以前版本中创建一个对象,对象必须要有一个所有者(owner)。对象是如何属于某个所有者的呢?这依赖于创建对象时的用户。您不能取消对象所有者(object owner)的特权(privileges)。对象所有者可以执行任何与对象有关的操作(例如 INSERT、UPDATE、DELETE、SELECT 或 EXECUTE),也可以管理对象的权限。 从2005/2008后

16、,一个我们必须重新认识的情况是对象不再有所有者(owner)。架构包含对象,架构有所有者。在2005前(如SQL Server 2000中),没有架构的概念,只有用户的概念,那时候DBO是默认用户。到了2005,有了架构概念,但是为了向后兼容,保留了DBO,并且把DBO作为默认架构,在不指定架构的情况下,默认为dbo,“默认架构”的概念,用于解析未使用其完全限定名称引用的对象的名称。在 SQL Server 2005 中,每个用户都有一个默认架构,用于指定服务器在解析对象的名称时将要搜索的第一个架构。可以使用 CREATE USER 和 ALTER USER 的 DEFAULT_SCHEMA

17、选项设置和更改默认架构。如果未定义 DEFAULT_SCHEMA,则数据库用户将把 DBO 作为其默认架构。(五)dbodbo既是默认架构,也是默认用户。在SQL Server 2000中,dbo作为默认用户。在SQL Server2005中,dbo既作为默认用户,也作为默认架构(如图)。 dbo作为默认用户,dbo (DataBase Owner,数据库的所有者,拥有数据库中的所有对象),每个数据库都有dbo, sysadmin服务器角色的成员自动映射成dbo,无法删除 dbo 用户,且此用户始终出现在每个数据库中。通常,登录名sa映射为库中的用户dbo 。另外,固定服务器角色 sysadm

18、in 的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。由固定服务器角色 sysadmin 的任何成员或 dbo 用户创建的任何对象都自动属于dbo,由任何其他用户(包括 db_owner 固定数据库角色成员)创建的对象,属于创建该对象的用户,而不是 dbo,用创建该对象的用户名限定。例如:如果用户 Andrew 是固定服务器角色 sysadmin 的成员,并创建表 T1,则表 T1 属于 dbo,并以 dbo.T1 而不是 Andrew.T1 进行限定。相反,如果 Andrew 不是固定服务器角色 s

19、ysadmin 的成员,而只是固定数据库角色 db_owner 的成员,并创建表 T1,则 T1 属于 Andrew,并限定为 Andrew.T1。该表属于 Andrew,因为该成员没有将表限定为 dbo.T1。dbo作为默认架构,在不指定架构的情况下,默认为dbo,“默认架构”的概念,用于解析未使用其完全限定名称引用的对象的名称。在 SQL Server 2005 中,每个用户都有一个默认架构,用于指定服务器在解析对象的名称时将要搜索的第一个架构。可以使用 CREATE USER 和 ALTER USER 的 DEFAULT_SCHEMA 选项设置和更改默认架构。如果未定义 DEFAULT_

20、SCHEMA,则数据库用户将把 DBO 作为其默认架构。(六)Guest用户guest用户不需要映射到登录名。这种用户账号是供数据库中没有明确授予权限给已映射至认证用户使用的。guest供那些已经成功登录到SQL SERVER实例,但是却没有通过用户访问数据库的权限的登录者使用的。SQL SERVER 2000中guest用户可以删除;而2005/2008中是不能删除的,却可以取消CONNECT权限,而且为安全起见,所有用户定义的数据库中缺省情况下guest用户的权限都是被取消了的,可在除master和tempdb之外的任何数据库中禁用Guest用户。在SQL SERVER 2000中,新建的

21、数据库中没有Guest用户,但可以添加它,也可删除它,添加与删除方法与普通数据库相同。在SQL Server 2005或以上版本中GUEST已经默认存在于每个数据库中,但默认情况下,会在新数据库中禁用GUEST用户(在“对象资源管理器安全性登录”节点中图标上有禁用标识),我们可以通过以下语句启用GUEST用户:GRANT CONNECT TO GUEST 。当你决定不再想让该数据库被非数据库授权的用户以GUEST身份进行访问时,可以再次将GUEST帐号禁用。值得一提的是,GUEST用户在数据库中不能被删除,我们只能通过以下语句禁用GUEST用户:REVOKE CONNECT FROM GUES

22、T 。在SQL SERVER 2000中,要允许guest用户帐户访问数据库,可以像添加其它数据库用户那样添加它,如:USE GOEXEC sp_grantdbaccess guestGO在SQL SERVER 2005中,允许guest用户帐户USE GOGRANT CONNECT TO GUESTGO需要提醒的是,对于是否添加Guest用户要谨慎权衡利弊。-SQL Server 2000删除guest用户账号USE GOEXEC sp_revokedbaccess guestGO - SQL Server 2005禁用guest用户账号USE GOREVOKE CONNECT FROM G

23、UEST GO(七)sa 登录名SQL Server的 sa 登录名是服务器级的主体。默认情况下,该登录名是在安装实例时创建的。在 SQL Server 2005 和 SQL Server 2008 中,sa 的默认数据库为 master。这是对早期版本的 SQL Server 的行为的更改。sa(system administrator系统管理员)是为向后兼容而提供的特殊登录。sysadmin是一种角色。该角色能够执行SQL Server上的任何操作。本质上,任何具有这种角色成员身份的人都是那个服务器上的sa。这种服务器角色的创建为微软提供了某一天去除sa登录的能力实际上,联机丛书把sa称作

24、本质上为遗留物的东西。与以前版本不同,SQL Server 2008,即使是用混合模式安装,sa也默认禁用。注意,sa是一个默认的SQL Server登录名,拥有操作SQL Server系统的所有权限,该登录名不能被删除。当采用混合模式安装Microsoft SQL Server系统之后,应该为sa指定一个密码,应为 sa 登录分配一个强密码(strong password)。 sa 登录名会映射到 sysadmin 固定服务器角色,它对整个服务器有不能撤销的管理凭据。如果攻击者以系统管理员的身份获取了访问权限,则可能造成的危害是无法预计的。 (八)其它几个默认配置的的登录(Logins)和用

25、户(Users)默认配置的的登录和用户除了dbo用户、Guest用户、sa 登录,还有如下几个:Administrators 组是一个特殊的登录。administrator用户默认administrators组的成员。Administrators 组实际名称为BUILTINAdministrators。早期版本,这个组的所有成员均为 sysadmin 角色的成员(这意味着Administrators组中的成员具有最高权限),但可以从该角色中移除这些成员。与以前版本不同,SQL Server 2008默认情况下,本地 Windows 组 BUILTINAdministrators 不再包含在新的

26、 SQL Server 2008 安装上的 SQL Server的 sysadmin 固定服务器角色中。提示:每个版本的 SQL Server 都具有不同的安全功能,默认配置也不尽相同,后出的版本更有利于安全,但安全性和使用方便这两种需求可能有矛盾的一面,最佳方法是上机了解验证。NETWORK SERVICE和SYSTEM登录账户NETWORK SERVICE和SYSTEM登录账户,实际名称为NT AUTHORITYNETWORK SERVICE和NT AUTHORITYSYSTEM,是否存在这些,依赖于服务器的配置。如果配置了报表服务器,将出现NETWORK SERVICE登录账户。INFO

27、RMATION_SCHEMA和sys用户INFORMATION_SCHEMA和sys又是SQL Server 预定义的架构(内置架构)名称,它们与INFORMATION_SCHEMA和sys用户具有相同的名称。不能删除,主要用于向后兼容性。可以使用INFORMATION_SCHEMA用户和sys用户访问INFORMATION_SCHEMA和sys架构的系统视图,获取有关数据库元数据信息。(九)SQL Server中的角色角色 (role),是SQL Server用来管理服务器和数据库权限的, 是安全帐户的集合,在管理权限时可以视为一个单元作为分配权限的单位。 SQL Server中的角色分为服

28、务器级别和数据库级别角色。服务器级别角色服务器级别角色用于帮助管理服务器上的权限。 服务器角色的权限作用域为服务器范围。可以将登录名(Login Name)添加到服务器角色。 符合权限要求的用户,可以将服务器级主体(SQL Server 登录名、Windows 帐户和 Windows 组)添加到服务器级角色。 固定服务器角色的每个成员都可以将其他登录名添加到该同一角色。 固定服务器角色简介: 1)sysadmin:系统管理员,角色成员可对SQL Server服务器进行所有的管理工作,为最高管理角色。这个角色一般适合于数据库管理员(DBA)。 2)securityadmin:安全管理员,角色成员

29、可以管理登录名及其属性。可以授予、拒绝、撤销服务器级和数据库级的权限。另外还可以重置SQL Server登录名的密码。 3)serveradmin:服务器管理员,角色成员具有对服务器进行设置及关闭服务器的权限。 4)setupadmin:设置管理员,角色成员可以添加和删除链接服务器,并执行某些系统存储过程。 5)processadmin:进程管理员,角色成员可以终止SQL Server实例中运行的进程。 6)diskadmin:用于管理磁盘文件。 7)dbcreator:数据库创建者,角色成员可以创建、更改、删除或还原任何数据库。 8)bulkadmin:可执行BULK INSERT语句,但是

30、这些成员对要插入数据的表必须有INSERT权限。BULK INSERT语句的功能是以用户指定的格式复制一个数据文件至数据库表或视图。 9)在sql server 2005 sp2(补丁)及以后版本,服务器角色中还可以看到一个public角色 。每个 SQL Server 登录名均属于 public 服务器角色。 如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。public服务器角色默认拥有 VIEW ANY DATABASE(查看任何数据库) 权限。VIEW ANY DATABASE 权限控制是否显示 sys.databases 和

31、 sys.sysdatabases 视图以及 sp_helpdb 系统存储过程中的元数据(metadata)。从 SQL Server 2012 开始,您可以创建用户定义的服务器角色,并将服务器级权限添加到用户定义的服务器角色。每个版本的 SQL Server 都具有不同的安全功能,版本越高,功能越强。可以利用系统函数IS_SRVROLEMEMBER 指示当前用户的 SQL Server 登录名是否是固定服务器角色的成员。可以利用系统存储过程sp_helpsrvrolemember返回有关 SQL Server 固定服务器角色成员的信息。- 查询 sysadmin 固定服务器角色的成员。exec sp_helpsrvrolemember sysadmin数据库级别的角色数据库级别角色用于帮助管理数据库中的权限。 数据库级角色的权限作用域为数据库范围。可以将数据库用户名(User Name)添加到数据库角色。SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”(自定义数据库角色)。 固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。 db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。 但是,只有db_

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

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