第12章安全管理 121 SQL Server的安全机制 多12-2安全认证模式多 12-3 SQL Server账户管理 为124角色 12-5权限 安全管理对于 SQL Server2000据库管理系统而言 用户角色和权限的管理。,SLse图B 是至关重要的。本章主要介绍了 SQL Server的安全 全构架、安全等级、安全认证模 账号
第12章 安全管理 12-1 SQL Server的安全机制 12-2 安全认证模式 12-3 SQL Server账户管理 12-4 角色 12-5 权限 安全管理对于SQL Server 2000数据库管理系统而言 是至关重要的。本章主要介绍了SQL Server的安全性、安 全构架、安全等级、安全认证模式、SQL Server用户账号、 用户角色和权限的管理等
1296e的全机制 21安全性与数据安全性 LB友全构 12233JS6wep安个等 级
12-1-1 安全性与数据安全性 12-1-2 SQL Server安全构 架 12-1-3 SQL Server安全等 级 12-1 SQL Server的安全机制
多1下全性氯数据安全性 安全性管理对于—个数据库管理系统或任何一个公司组织的信息 系统开发而言都是至关重要的是数据库管理中十分关键的环节,是数据 库中数据信息被合理访问和修改的基本保证。安全性系指允许那些具有 相应数据访问权限的用户登录到 SQL Server2000,访问数据以及对数据 库对象,实施各种权限范围内的操作,并拒绝所有非授权用户的非法操 作 数据库中通常存储着大量个人信息、交互清单、客户资料或其他机密性 信息数据,倘若某人未经授权非法侵入数据库,并窃取查看和修改重要 数据的权限,将会给系统造成极大的危害。数据的安全性是指保护数据 以防止因不合法的使用而造成数据的泄密和破坏。这就要采取一定的安 全保护措施,在数据库中,系统用检查口令等手段来验证用户身份,合 法的用户才能进入数据库系统,当用户对数据库执行操作时,系统会自 动检查用户是否具有执行这些操作的相关权限
安全性管理对于一个数据库管理系统或任何一个公司组织的信息 系统开发而言都是至关重要的,是数据库管理中十分关键的环节,是数据 库中数据信息被合理访问和修改的基本保证。安全性系指允许那些具有 相应数据访问权限的用户登录到SQL Server 2000,访问数据以及对数据 库对象,实施各种权限范围内的操作,并拒绝所有非授权用户的非法操 作。 数据库中通常存储着大量个人信息、交互清单、客户资料或其他机密性 信息数据,倘若某人未经授权非法侵入数据库,并窃取查看和修改重要 数据的权限,将会给系统造成极大的危害。数据的安全性是指保护数据 以防止因不合法的使用而造成数据的泄密和破坏。这就要采取一定的安 全保护措施,在数据库中,系统用检查口令等手段来验证用户身份,合 法的用户才能进入数据库系统,当用户对数据库执行操作时,系统会自 动检查用户是否具有执行这些操作的相关权限。 12-1-1 安全性与数据安全性
12-1-2 SQL Server安全构架 在 SQL Server2000数据库管理系统中实现安全性运作,尤需了解 SQL Server 的安全体采结构和实现安全的方法。安全系统的构架建立在用户和用户组的基础 上。图12-1说明了微软公司的 Windows nT和 Windows200sYer中用户 本地组及全局组如何映射到 SQL Server中的安全账户,以及 SQL Server 2000是如何独立于 Windows nt4.0和 Windows2000 Server中的账户来处 理安全账户。A 图12-1中的电子商务本地组中含有两个用户和一个信息管理全局组,这个全局 组中又含有两个用户A和B。 SQL Server允许直接使用 Windows nt40和 Windows2000 Server本地组和全局组来组织 SQL Server的用户账户。此外, Windows2000 Server用户E虽不属于 Windows nt4.0或 Windows2000 Server组,但可以作为 WindOws nt4.0用户或作为 SQL Server用户值接添 加到 SQL Server实例中。 SQL Server通过使用角色进一步扩展了这种的模型。角色是为了进行管理而组 织的用户组,与 Windows nt4.0或 Windows2000 Server组相同,但是当 等价的 Windows nt4.0或 Windows2000 Server组不存在时,将在SQI Server中创建这些角色。例如, Managers本 角色中包含 WindOws nt4.信息管理全局组,以及 Windows nt4.0用户C和用 户D。 此外, SQL Server还通过使用单独的数据库角色,提高应用水的安全管理
在SQL Server 2000数据库管理系统中实现安全性运作,尤需了解SQL Server 的安全体系结构和实现安全的方法。安全系统的构架建立在用户和用户组的基础 上。图12-1说明了微软公司的Windows NT 和 Windows 2000 Server中用户、 本地组及全局组如何映射到 SQL Server 中的安全账户,以及 SQL Server 2000是如何独立于 Windows NT 4.0 和 Windows 2000 Server中的账户来处 理安全账户。 图12-1中的电子商务本地组中含有两个用户和一个信息管理全局组,这个全局 组中又含有两个用户A和B。SQL Server 允许直接使用 Windows NT 4.0 和 Windows 2000 Server本地组和全局组来组织 SQL Server 的用户账户。此外, Windows 2000 Server用户E 虽不属于 Windows NT 4.0 或Windows 2000 Server组,但可以作为 Windows NT 4.0 用户或作为 SQL Server 用户直接添 加到 SQL Server 实例中。 SQL Server通过使用角色进一步扩展了这种的模型。角色是为了进行管理而组 织的用户组,与 Windows NT 4.0 或 Windows 2000 Server组相同,但是当 等价的 Windows NT 4.0 或 Windows 2000 Server组不存在时,将在 SQL Server 中创建这些角色。例如,Managers 角色中包含Windows NT 4.0信息管理全局组,以及Windows NT4.0用户C和用 户D。 此外,SQL Server 还通过使用单独的数据库角色,提高应用水平的安全管理。 12-1-2 SQL Server安全构架
图 SQL Server2000安全机构 nd心w2000。r全 S8rr200的 wnew2 nn sener用F me2 non sener用户 电子商本地组 吧子商本地组 本地用户 息仓坦全 油息官理全局组 用 用户B 本地用户c 本地用户C 本地用户D 本地用户D W3w2000a用戶 9公x2000用戶 图121江2000突合构異
图SQL Server2000安全机构
12-1-3 SQL Server安全等级 在合理实施安全性管理前,用户尤亟 待明了 SQL Serverl的安全等级。迄今 为止, SQL Server2000和绝大多数数 担作呆纹 T 据库管理系统(DBMS)一样,都还 安金淹 录检 是运行在某一特定操作系统平台下的一 应用程序,因而 SQL Server安全性机 制尚脱离不了操作系统平台,据此 客户机限图 SQL Server2000安全机制可分为如下 四个等级: 飘吧平 □~操作系统的安全性。 站问限 SQL Serverl的安全性 数据库的安全性 数据库对象的安全性 每个安全等级都可视作一扇沿途设卡 的D请问可树 的门”,若该门未上锁(没有实施 安全保护),或者用户拥有开门的钥 匙(有相应的访问权限),则用户可 图12-22000金机制 以通过此门进入下一个安全等级,倘 若通过了所有门,用户即可访问数据 库中相关对象及其所有的数据了。 SQL Server安全机制如图122所示
在合理实施安全性管理前,用户尤亟 待明了SQL Server的安全等级。迄今 为止,SQL Server 2000和绝大多数数 据库管理系统(DBMS)一样,都还 是运行在某一特定操作系统平台下的 应用程序,因而SQL Server安全性机 制尚脱离不了操作系统平台,据此 SQL Server 2000安全机制可分为如下 四个等级: 1 操作系统的安全性。 1 SQL Server的安全性。 1 数据库的安全性。 数据库对象的安全性。 每个安全等级都可视作一扇沿途设卡 的“门” ,若该门未上锁(没有实施 安全保护),或者用户拥有开门的钥 匙(有相应的访问权限),则用户可 以通过此门进入下一个安全等级,倘 若通过了所有门,用户即可访问数据 库中相关对象及其所有的数据了。 SQL Server安全机制如图12-2所示。 12-1-3 SQL Server安全等级
12-2安全认证模式 312-2-1身份验证 12-2-2权限认证 12-2-3设置认证模 式
12-2-1 身份验证 12-2-2 权限认证 12-2-3 设置认证模 式 12-2 安全认证模式
12-2安全认证模式 用户在使用 SQL Server2000时,需要经过两个安全性阶段:身份验证和权限认证 首先是身份验证阶段,该阶段系统( Windows2000 NT Server或 SQL Server2000将对 登录 SQL Server用户的账户进行验证,判断该用户是否有连接 SQL Server2000实例的2 权力。如果账户身份验证成功了,表示用户可以连接 SQL Server2000实例,否则系统 将拒绝用户的连接。然后步入权限认证阶段,对登录连接成功的用户检验是否有访问 服务器上数据库的权限,为此需授予每个数据库中映射到用户登录的账户访问权限, 权限认证可以控制用户在数据库中进行的操作。2 212-2-1身份验证 身份验证阶段,系统需要对用户登录进行认证。 Microsoft SQL Server2000身份验 证有两种模式: Windows身份验证模式和混合身份验证模式 (1) Windows身份验证模式〈集成登录模式)。该模式基于 Windowst操作系统的安全 机制验证用户身份,只要用户能够通过 Windows NT40或 Windows2000 Server用户账 户验证,即可连接到 SQL Server,无须再度认证。这种验证模式只适宜于能够提供有 效身份验证的基于 Windows nt或 Windows2000 Server的操作系统平台,在 Windows 件系统上无法用2的种m身份合验证在硫式其 系统将区分用户账号在 Windows操作系统下是否可信,对于可信连接用户,系统直接 采用 Windows身份验证机制,否则 SQL Server200会自动通过账户的存在性和密码的 匹配性来进行验证。即采用 SQL Server模式验证时,系统将检查是否已经建立了该用 户的登录账户及其口令是否吻合。只有当通过验证后,该用户应用程序方可连接到 SQL Server服务器,否则系统将拒绝该用户的连接请求
用户在使用SQL Server 2000时,需要经过两个安全性阶段:身份验证和权限认证。 首先是身份验证阶段,该阶段系统(Windows 2000/NT Server或SQL Server 2000)将对 登录SQL Server用户的账户进行验证,判断该用户是否有连接SQL Server 2000实例的 权力。如果账户身份验证成功了,表示用户可以连接SQL Server 2000实例,否则系统 将拒绝用户的连接。然后步入权限认证阶段,对登录连接成功的用户检验是否有访问 服务器上数据库的权限,为此需授予每个数据库中映射到用户登录的账户访问权限, 权限认证可以控制用户在数据库中进行的操作。 12-2-1 身份验证 身份验证阶段,系统需要对用户登录进行认证。Microsoft SQL Server 2000身份验 证有两种模式:Windows 身份验证模式和混合身份验证模式。 (1)Windows 身份验证模式(集成登录模式)。该模式基于Windows操作系统的安全 机制验证用户身份,只要用户能够通过 Windows NT 4.0 或 Windows 2000 Server用户账 户验证,即可连接到SQL Server,无须再度认证。这种验证模式只适宜于能够提供有 效身份验证的基于Windows NT 或 Windows 2000 Server的操作系统平台,在Windows 9X操作系统下无法使用。(2)混合身份验证模式(标准登录模式,又称SQL Server 混合身份验证)。其基于Windows 身份验证和 SQL Server 身份混合验证。在该模式下, 系统将区分用户账号在Windows操作系统下是否可信,对于可信连接用户,系统直接 采用Windows身份验证机制,否则SQL Server 2000会自动通过账户的存在性和密码的 匹配性来进行验证。即采用SQL Server模式验证时,系统将检查是否已经建立了该用 户的登录账户及其口令是否吻合。只有当通过验证后,该用户应用程序方可连接到 SQL Server服务器,否则系统将拒绝该用户的连接请求。 12-2 安全认证模式
与 SQL Server混合身份验证相比, Windows身份验证有某些优点, Windows身份验证模式更为安全,主要是由于它与 WindOws nt40和 Windows 2000安全系统的集成。 Windows nt40和 Windows20安全杀统相对可以提 次登录请求无效后锁定账户。对于账户以及账户组的管理和修改也更为场及在多 供更多的功能,如安全验证和密码加密、审核、密码过期、最短密码长度, SQL Server混合身份验证的管理较为简单。它允许应用程序的众多用户使用同υ个 登录标识,而 Windows身份验证模式则需为所有的用户创建账户 若用户试图通过提供空白登录名称连接到 SQL Server的实例, SQL Server将使用 Windows身份验证。此外,如果用户试图使用特定的登录连接到配置为 Windows 身份验证模式的 SQL Server实例,则将忽略该登录并使用 Windows身份验证。 由于 WindOwS nt40和 Windows2000用户和组,只能由 Windows nt40或 Windows2000维护,因此当用户进行连接时, SQL Server将读取有关该用户在 组中的成员资格信息。如果对已连接用户的可访问权限进行更改,则当用户次连接 到 SQL Server实例或登录到 Windows nt40或 Windows2000时(取决于更 改的类型),这些更改会生效 之, Windows身份验证是首选模式,而对于应用程序开发人员或数据库管理 人员而言,更青睐于 SQL Server混合模式。 SQL Server的安全性决策过程如图12- 3所示 混合模式允许某些非可信的 Windows操作系统账户连接到 SQL Server,例如互 联网客户等,它相当于在 Windows身份验证机制之后加入了 SQL Server身份验证机 制,对非可信的 Windows账户进行自行验证。 SQL Server身份验证机制是指SQL Server2000通过检1 是 存在正在登录的 SQL Server账户,以及输入的密码是否 与设置的密码相符,自己进行身份验证。对于未设置的 SQL Server登录账户或密码 不符的登录账户,则身份验证失败,连接将被拒绝。对于 Window.9以及 WindOws nt和 Windows2000 Server客户端以外的客户端,必须使用SQL Server身份验证机制
与SQL Server 混合身 份验证相比, Windows 身 份验证有某些优 点 , Windows 身份验证模式更为安全,主要是由于它与 Windows NT 4.0 和 Windows 2000 安全系统的集成。Windows NT 4.0 和 Windows 2000 安全系统相对可以提 供更多的功能,如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多 次登录请求无效后锁定账户。对于账户以及账户组的管理和修改也更为方便。 SQL Server 混合身份验证的管理较为简单。它允许应用程序的众多用户使用同一个 登录标识,而Windows 身份验证模式则需为所有的用户创建账户。 若用户试图通过提供空白登录名称连接到 SQL Server 的实例,SQL Server 将使用 Windows 身份验证。此外,如果用户试图使用特定的登录连接到配置为 Windows 身份验证模式的 SQL Server 实例,则将忽略该登录并使用 Windows 身份验证。 由于 Windows NT 4.0 和 Windows 2000 用户和组,只能由 Windows NT 4.0 或 Windows 2000 维护,因此当用户进行连接时,SQL Server 将读取有关该用户在 组中的成员资格信息。如果对已连接用户的可访问权限进行更改,则当用户下次连接 到 SQL Server 实例或登录到 Windows NT 4.0 或 Windows 2000 时(取决于更 改的类型),这些更改会生效。 总之,Windows 身份验证是首选模式,而对于应用程序开发人员或数据库管理 人员而言,更青睐于SQL Server混合模式。SQL Server的安全性决策过程如图12- 3所示。 混合模式允许某些非可信的Windows操作系统账户连接到 SQL Server,例如互 联网客户等,它相当于在Windows身份验证机制之后加入了SQL Server身份验证机 制,对非可信的Windows账户进行自行验证。SQL Server身份验证机制是指SQL Server 2000通过检查是否存在正在登录的SQL Server账户,以及输入的密码是否 与设置的密码相符,自己进行身份验证。对于未设置的SQL Server登录账户或密码 不符的登录账户,则身份验证失败, 连接将被拒绝 。对于Windows 9X以及 Windows NT和Windows 2000 Server客户端以外的客户端,必须使用 SQL Server身份验证机制
12-2-2权限认证 当用户通过身份验证连接到SQL Server实例后,用户可以访问的每个 数据库仍然要求其具有单独的用户账 户,对于没有账户的数据库,将无法 访问。这样可防止一个已连接的用户[每造模 混观式 访间。此时,已连接用户虽然可以发m燃提 用 SQL 送各种 Transact-SQL语句命令,但是 连接吗 这些操作命令在数据库中是否能够成 ses Yes 功地执行,还取决于该用户账户在该 ND 最享 数据库中对这些操作的权限设置。如 果发出操作命令的用户没有执行该语 句的权限或者没有访问该对象的权限, 则 SQL Server将不会执行该操作命令 所以没有通过数据库中的权限,拒仍垂 31sner把绝援 连 即使用户连接到了 SQL Server示例上, 也无法使用数据库。 B123n2000炙金淹决策谢 一般而言,数据库的所有者或对象的 所有者可以对其他数据库用户授予权 限或者解除权限
当用户通过身份验证连接到SQL Server实例后,用户可以访问的每个 数据库仍然要求其具有单独的用户账 户,对于没有账户的数据库,将无法 访问。这样可防止一个已连接的用户 对SQL Server的所有数据库资源进行 访问。此时,已连接用户虽然可以发 送各种Transact-SQL 语句命令,但是 这些操作命令在数据库中是否能够成 功地执行,还取决于该用户账户在该 数据库中对这些操作的权限设置。如 果发出操作命令的用户没有执行该语 句的权限或者没有访问该对象的权限, 则SQL Server将不会执行该操作命令。 所以没有通过数据库中的权限认证, 即使用户连接到了SQL Server示例上, 也无法使用数据库。 一般而言,数据库的所有者或对象的 所有者可以对其他数据库用户授予权 限或者解除权限。 12-2-2 权限认证