SQL Server 密码策略和证书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 密码策略和证书 SQL Server 2005加强了在Windows Server 2003下运行的SQL Server 登录的身份验证。
SQL Server 2005 对其他操作系统下运行的SQL Server 的身份验证也做了一些改进。
正如本章一开始提到的,用户可以使用Windows 身份验证或者SQL Server 身份验证来登录SQL Server 。
Windows 身份验证是非常安全的,因为用户的密码不会在网上发送,而且域和机器的管理员可以加强密码策略。
密码策略可能要求用户在第一次登录NT 域或机器时更改他们的密码。
策略可能要求用户使用强壮的密码,比如,至少八个字符,包括至少一个数字、字母和特殊符号。
密码策略可能也要求用户经常改变他们的密码。
这个策略可以指定在尝试了若干次错误密码后禁止登录。
当一个数据库管理员仅使用Windows 登录时,SQL Server 继承这个级别的可增强安全性。
SQL Server 2005之前,SQL Server 没有这些必要的安全性特征。
在大多数安全性系统中,弱的密码被认为是安全性最薄弱的环节。
有了SQL Server 2005新的安全特性之后,SQL Server 登录账号将具有所有可用的安全性策略特征。
SQL Server 用户和应用程序角色都将使用这个策略。
在Windows Server 2003或以后的版本中,这个策略将通过操作系统级调用来实现。
这个操作系统级调用是
NetValidatePasswordPolicy 。
这样一来,管理员就可以在Windows 集成和SQL Server 登录中使用相同的策略。
为了让使用SQL Server 2005
的公司有时间来分析政策如何影响已有的应用程序,这些策略在每一个登录账号已被关掉。
显然,这种做法不值得推荐。
默认情况
下,CHECK_EXPIRATION 策略会被设置成OFF,因为组织和软件厂家将不得不对每一个应用程序增加更改密码的能力。
Windows 向用户提供在登录时(或者当登录到Windows 以后)更改密码的能力时,SQL Server 用户能够在登录时改变密码。
客户端应用程序接口(比如OLE
DB,ODBC 和)以及客户端工具(比如SQL Server Management Studio)都已被增强以支持这个特点。
如果你正在使用Active Directory,密码策略将通过Active Directory Users and
Computers 工具设置;如果你正在管理一个非域的电脑,密码策略将通过Local Security Settings 管理工具设置。
表6.1给出了使用Local Security Settings 的设置。
表6.1 Windows 和SQL Server 2005登录账号的安全性策略
注意,Account Lockout Duration(当达到Account Lockout Threshold(账户锁定极限)时,账户被锁定的时间)和Reset Lockout Counter After(当无效的登录尝试返回到0(如果没有扩展它)以后的时间)都是不适用的,直到设置Account Lockout Threshold为某个非0的值。
对于SQL Server登录账户,这里有两个密码选项:CHECK_EXPIRATION和
CHECK_POLICY。
CHECK_EXPIRATION包含最小和最大的密码期限,而CHECK_POLICY 包含所有其他的策略。
当用户的运行和任何政策运行时,SQL Server登录账户必须由数据库管理员解锁,正如本章后面有一个例子所示。
管理员可以通过SQL Server Management Studio或通过使用T_SQL语句CREATE LOGIN来增加一个新的登录账号。
为了向后兼容,传统的存储过程sp_addlogin仍被支持,但这个存储过程没有展现出新的特征。
像下面的例子一样,你可以创建一个新的SQL Server登录账号,它要求在用户第一次试图登录时使用MUST_CHANGE关键字更改密码。
如果不改变密码就试图访问SQL Server实例,将导致一个错误:
CREATE LOGIN FRED WITH PASSWORD = 'hy!at54Cq' MUST_CHANGE, DEFAULT_DATABASE = pubs,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON
GO
FRED试图登录到数据库时,他将得到一个“初次登录时必须更改密码”的错误。
数据库管理员用DDL可以管理密码策略问题。
如果登录账号FRED被锁定,比如在三次登录尝试失败之后,数据库管理员可以通过下面的代码解锁登录账号:
ALTER LOGIN FRED WITH PASSWORD = 'fredsNewpassword#' UNLOCK
GO
在极少数情况下,数据库管理员希望关掉强制密码有效期限或强制安全性策略时,可以用ALTER LOGIN来实现。
设置了MUST_CHANGE标志但用户尚未更改密码时,下面的两个语句都不能工作:
ALTER LOGIN FRED WITH CHECK_EXPIRATION = OFF
GO
ALTER LOGIN FRED WITH CHECK_POLICY = OFF
GO。