如果用户登陆尝试失败了太多次,超过了密码政策的允许次数,SQL Server会基于在Windows 政策中的设置锁定这个帐户。一个管理员可以使用ALTER LOGIN语句为这个帐户解锁:
以下是引用片段: ALTER LOGIN alice WITH PASSWORD = ''3x1Tq#PO^YIAz'' UNLOCK |
3.2 终端验证
SQL Server 2008支持传统的用于客户端访问数据的二进制表格数据流(Tabular Data Stream),还支持本地的使用HTTP的XML Web service 访问。允许通过HTTP来访问的主要好处是了解Web service的任何客户端软件和开发工具都可以访问存储在SQL Server中的数据。这意味着SQL Server 2008可以提供独立的Web service 方法,并且是服务面向架构(SOA)中的一个完整的终端。
使用SQL Server 2008作为一个Web service 主机需要两个常规步骤,每一个都有许多可能:定义存储过程和用户定义的提供了Web service方法的功能、定义一个通过HTTP接收方法调用和将它们发送到适合的过程中去的HTTP终端。这篇白皮书专注于相关的安全问题。要查看配置和使用HTTP终端的细节,请查看SQL Server在线书籍的CREATE ENDPOINT(Transact-SQL)。
因为SQL Server 中的XML Web service使用HTTP和默认情况下的80端口,大多数防火墙允许它通过。然而,一个不受保护的终端对于攻击者来说是一个潜在的美味,你必须保护它,所以SQL Server 拥有强大的验证和授权能力。默认情况下,SQL Server 没有任何终端,你不得不具有一个高级别的权限来创建、修改和开启HTTP终端。
SQL Server 2008提供了五个验证类型,和IIS用于网站验证所使用的类似。
· 基本验证
基本验证是HTTP 1.1协议的一部分,它将登陆凭证放在基于-64编码的文本中传输。这个凭证必须与一个Windows登陆相匹配,然后SQL Server 使用它来验证对数据库资源的访问。如果你使用基本验证,你不能将PORTS参数设置为CLEAR ,而是必须设置它为SSL,并使用一个SSL的数字证书来加密与客户端软件的通信。
· 摘要验证
摘要验证也是HTTP 1.1协议的一部分。它在发送给服务器之前使用MD5哈希了凭证以便它不能通过电线发送它们,甚至是以加密的形式。这个凭证必须匹配一个有效的Windows域帐户;你不能使用本地用户帐户。
· NTLM验证
NTLM使用一开始在Microsoft Windows NT®中推出的挑战响应协议,并在之后的所有的Windows客户端和服务器版本中获得支持。它在客户端和服务器都是Windows系统时提供了安全验证,并要求一个有效的域帐户。
· Kerberos验证
Kerberos验证在Windows 2000和之后的版本中有效,它基于一个在许多操作系统中可用的行业标准协议。它允许相互验证,其中客户端和服务器都会一定程度上确定另一个的验证,并提供一个非常安全的验证形式。为了在Windows Server 2003上使用Kerberos,你必须使用SetSPN.exe工具用Http.sys注册Kerberos服务主体名称(Service Principal Name,SPN),SetSPN.exe工具是Windows支持工具的一部分。
· 集成验证
集成验证提供了最好的NTLM和Kerberos 验证。服务器使用客户端所要求的这两个验证类型之一,允许客户端支持最安全的验证,同时使得服务可用于Windows的之前版本。你可以在Windows 2003中配置Http.sys以决定它应该使用哪个协议。
这个用于终端的验证方法使用CREATE或ALTER ENDPOINT语句的AUTHENTICATION属性来设置。例如,下面的