关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »SQL Server 2008中的验证(1)

    SQL Server 2008中的验证(1)

    2015-10-24 00:00:00 出处:ITJS
    分享

    在数据和服务器都需要保护,而且不想承受如今互联网上常见的无情攻击之际,Microsoft 开发了 SQL Server 2000。基本的验证问题依然存在:您是谁?您如何证明自己的身份?但是,SQL Server 2008 提供了更健壮的验证特性,对服务器的安全便捷有着更好的支持,放行好人并阻止坏人。

    SQL Server Authentication 利用包含用户 id 和口令的简单连接字符串,为基于非 Windows的客户端或应用程序提供了验证机制。这种登录易于使用,很受应用程序开发人员的欢迎,它的安全性不如 Windows 验证机制,因此在验证机制中不推荐使用。

    SQL Server 2008 改进了 SQL Server Authentication 选项。首先,默认情形下它利用 SQL 生成的证书支持通道的加密。管理员不必获取或安装有效的 SLL 证书,以确保 SQL 凭证流经的通道是安全的。由于 SQL Server 2008 自动生成这些证书,因此在传送登录数据包时,默认情形下它将自动加密通道。假如客户端使用 SQL Server 2005 或更新版本,即可使用该特性。

    注意:SQL Server 生成的本地证书可保护被动的中间人攻击,其中的攻击者会嗅探网络。要更有效地系统免受被动中间人攻击,应部署并使用客户端也信任的证书。

    类别

    名称

    注释

    口令策略

    强行应用口令历史记录

    防止用户重用旧口令,如交替使用两个口令。

     

    最短的口令长度

       

    口令必须满足复杂度要求

    参见下文。

     

    利用可逆加密存储口令

    允许在 Windows 中检索口令。绝对不要启用该选项,除非应用程序的要求优先于安全口令的要求。(该策略不适用于 SQL Server。)

    口令过期日

    口令的最长存在时间

     

    口令的最短存在时间

     

    帐户锁定策略

    帐户锁定持续时间

    帐户锁定的持续时间(以分钟计)。当锁定阈值>0时,Windows 将启用该策略。

     

    帐户锁定阈值

    不成功登录尝试的最大次数。

     

    时间到后即可重置帐户锁定计数器

    多久之后 Windows 将重置不成功尝试的计数器。当锁定阈值>0时,Windows 将启用该选项。

    如未运行 Windows Server 2003 或更新版本,SQL Server 仍利用简单的检查方法,强行应用口令强度,以阻止以下口令:

    ◆Null 或空口令

    ◆与计算机或登录名相同

    ◆Password、admin、administrator、sa、sysadmin 等口令

    相同的复杂度标准被应用给在 SQL Server 中创建及使用的所有口令,包括 sa 登录的口令、应用程序角色、用于加密的数据库主密钥以及对称加密密钥。

    SQL Server 默认情形下总会检查口令策略,但利用 CREATE LOGIN 或 ALTER LOGIN 语句,可取消对个别登录的强行应用,代码如下:

    CREATE LOGIN bob WITH PASSWORD = 'S%V7Vlv3c9Es8',

    端点验证

    SQL Server 2008 支持传统的二进制 Tabular Data Stream(表格数据流),客户端利用该数据流通过HTTP 访问数据,也可通过 HTTP 访问本地 XML Web 服务。允许通过 HTTP 进行访问的主要好处就是,任何理解 Web 服务协议的客户端软件和开发工具都可访问存储在 SQL Server 中的数据。这表示 SQL Server 2008 可以提供独立的 Web 服务方法,它也是Service Oriented Architecture(面向服务的体系结构,SOA)中的一个完整端点。

    将 SQL Server 2008 用作 Web 服务主机需要两步通用操作,每一步都有很多变化:定义存储过程和用户定义的函数,以提供 Web 服务方法;定义 HTTP 端点,以通过 HTTP 接收方法调用,并将其转给适当的过程。本文主要介绍其中涉及到安全问题。有关配置及使用 HTTP 端点的详情,请参阅 SQL Server Books Online 中的 CREATE ENDPOINT(Transact-SQL)部分。

    由于默认情形下 SQL Server 中的 XML Web 服务使用 HTTP 和80端口,因此大多数防火墙都允许流量通过。但是,不受保护的端点其实是潜在的攻击载体,必须对其施加保护,因此 SQL Server 提供了强大的验证和授权机制。默认情形下,SQL Server 没有任何端点,用户必须拥有高级权限,以创建、更改及启用 HTTP 端点。

    SQL Server 2008 提供了五种不同的验证类型,与 IIS 用于网站验证的方法类似。

    Basic 验证

    基本验证是 HTTP 1.1 协议的一部分,它以base-64编码的明文传送登录凭证。凭证必须映射到 Windows 登录,然后 SQL Server 利用该凭证授权给对数据库资源的访问。假如使用 Basic 验证,就无法将 PORTS 自变量设为 CLEAR,反之必须将其设为 SSL,并通过 SSL 利用数字证书加密与客户端软件的通信。

    Digest 验证

    Digest 验证也是 HTTP 1.1 的一部分。在将凭证发送给服务器之前,它利用 MD5 对凭证进行杂散化,这样就无法通过电线发送它们,即使采用加密形式也是如此。凭证必须映射到有效的 Windows 域帐户,且不能使用本地的用户帐户。

    NTLM 验证

    NTLM 使用的是挑战响应协议,该协议最初是在Microsoft Windows NT® 中最先得到应用的,自此之后得到了 Windows 所有版本客户端和服务器的支持。当客户端和服务器都使用 Windows 系统时,它提供了安全验证机制,而且需要有效的域帐户。

    Kerberos 验证

    Kerberos 验证是 Windows 2000 及更新版本才有的特性,它以许多操作系统中都有的行业标准协议为基础。它允许执行相互验证,其中客户端和服务器都有理由相信对方的身份,并提供高级别的验证形式。为利用 Windows Server 2003 中的 Kerberos 特性,必须通过 HTTP.sys 以及作为 Windows Support Toos 一部分的 SetSPN.exe 实用工具,注册 Kerberos Service Principal Name(Kerberos 服务主体名,SPN)。

    Integrated 验证

    Integrated 验证提供了最好的 NTLM 和 Kerberos 验证。服务器将使用其中的一种验证类型并输入客户端请求,允许执行客户端支持的最安全验证,同时使旧版 Windows 也能使用该服务。可在 Windows 2003 中配置 Http.sys,使之与客户端协商要采用的协议。

    用于端点的验证方法是通过 CREATE 或 ALTER ENDPOINT 语句的 AUTHENTICATION 属性设置的。例如,下列代码将创建利用 Kerberos 执行验证的端点:

    CREATE ENDPOINT myEndpoint

    在数据和服务器都需要保护,而且不想承受如今互联网上常见的无情攻击之际,Microsoft 开发了 SQL Server 2000。基本的验证问题依然存在:您是谁?您如何证明自己的身份?但是,SQL Server 2008 提供了更健壮的验证特性,对服务器的安全便捷有着更好的支持,放行好人并阻止坏人。

    SQL Server Authentication 利用包含用户 id 和口令的简单连接字符串,为基于非 Windows的客户端或应用程序提供了验证机制。这种登录易于使用,很受应用程序开发人员的欢迎,它的安全性不如 Windows 验证机制,因此在验证机制中不推荐使用。

    SQL Server 2008 改进了 SQL Server Authentication 选项。首先,默认情形下它利用 SQL 生成的证书支持通道的加密。管理员不必获取或安装有效的 SLL 证书,以确保 SQL 凭证流经的通道是安全的。由于 SQL Server 2008 自动生成这些证书,因此在传送登录数据包时,默认情形下它将自动加密通道。假如客户端使用 SQL Server 2005 或更新版本,即可使用该特性。

    注意:SQL Server 生成的本地证书可保护被动的中间人攻击,其中的攻击者会嗅探网络。要更有效地系统免受被动中间人攻击,应部署并使用客户端也信任的证书。

    类别

    名称

    注释

    口令策略

    强行应用口令历史记录

    防止用户重用旧口令,如交替使用两个口令。

     

    最短的口令长度

     
     

    口令必须满足复杂度要求

    参见下文。

     

    利用可逆加密存储口令

    允许在 Windows 中检索口令。绝对不要启用该选项,除非应用程序的要求优先于安全口令的要求。(该策略不适用于 SQL Server。)

    口令过期日

    口令的最长存在时间

     

    口令的最短存在时间

     

    帐户锁定策略

    帐户锁定持续时间

    帐户锁定的持续时间(以分钟计)。当锁定阈值>0时,Windows 将启用该策略。

     

    帐户锁定阈值

    不成功登录尝试的最大次数。

     

    时间到后即可重置帐户锁定计数器

    多久之后 Windows 将重置不成功尝试的计数器。当锁定阈值>0时,Windows 将启用该选项。

    如未运行 Windows Server 2003 或更新版本,SQL Server 仍利用简单的检查方法,强行应用口令强度,以阻止以下口令:

    ◆Null 或空口令

    ◆与计算机或登录名相同

    ◆Password、admin、administrator、sa、sysadmin 等口令

    相同的复杂度标准被应用给在 SQL Server 中创建及使用的所有口令,包括 sa 登录的口令、应用程序角色、用于加密的数据库主密钥以及对称加密密钥。

    SQL Server 默认情形下总会检查口令策略,但利用 CREATE LOGIN 或 ALTER LOGIN 语句,可取消对个别登录的强行应用,代码如下:

    CREATE LOGIN bob WITH PASSWORD = 'S%V7Vlv3c9Es8',
    CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF

    CHECK_EXPIRATION 使用 Windows Server 2003 策略的“口令最大和最小年龄”部分,而CHECK_POLICY 使用其他的策略设置。

    管理设置还允许启用或关闭口令策略检查、启用或关闭口令过期检查,并在用户第一次登录时强行修改口令。CREATE LOGIN 中的 MUST_CHANGE 选项强行让用户修改下次登录时的口令。在客户端,它允许在登录时修改口令。所有新型客户端数据访问技术都支持该特性,包括 OLE DB 和ADO.NET 以及客户端工具,如 Management Studio。
    假如用户的不成功登录次数过多,超出了口令策略允许的尝试次数,SQL Server 将根据 Windows 策略中的设置锁定该帐户。管理员可利用 ALTER LOGIN 语句取消锁定该帐户:

    ALTER LOGIN alice WITH PASSWORD = '3x1Tq#PO^YIAz'  UNLOCK
    
    

    端点验证

    SQL Server 2008 支持传统的二进制 Tabular Data Stream(表格数据流),客户端利用该数据流通过HTTP 访问数据,也可通过 HTTP 访问本地 XML Web 服务。允许通过 HTTP 进行访问的主要好处就是,任何理解 Web 服务协议的客户端软件和开发工具都可访问存储在 SQL Server 中的数据。这表示 SQL Server 2008 可以提供独立的 Web 服务方法,它也是Service Oriented Architecture(面向服务的体系结构,SOA)中的一个完整端点。

    将 SQL Server 2008 用作 Web 服务主机需要两步通用操作,每一步都有很多变化:定义存储过程和用户定义的函数,以提供 Web 服务方法;定义 HTTP 端点,以通过 HTTP 接收方法调用,并将其转给适当的过程。本文主要介绍其中涉及到安全问题。有关配置及使用 HTTP 端点的详情,请参阅 SQL Server Books Online 中的 CREATE ENDPOINT(Transact-SQL)部分。

    由于默认情形下 SQL Server 中的 XML Web 服务使用 HTTP 和80端口,因此大多数防火墙都允许流量通过。但是,不受保护的端点其实是潜在的攻击载体,必须对其施加保护,因此 SQL Server 提供了强大的验证和授权机制。默认情形下,SQL Server 没有任何端点,用户必须拥有高级权限,以创建、更改及启用 HTTP 端点。

    SQL Server 2008 提供了五种不同的验证类型,与 IIS 用于网站验证的方法类似。

    Basic 验证

    基本验证是 HTTP 1.1 协议的一部分,它以base-64编码的明文传送登录凭证。凭证必须映射到 Windows 登录,然后 SQL Server 利用该凭证授权给对数据库资源的访问。假如使用 Basic 验证,就无法将 PORTS 自变量设为 CLEAR,反之必须将其设为 SSL,并通过 SSL 利用数字证书加密与客户端软件的通信。

    Digest 验证

    Digest 验证也是 HTTP 1.1 的一部分。在将凭证发送给服务器之前,它利用 MD5 对凭证进行杂散化,这样就无法通过电线发送它们,即使采用加密形式也是如此。凭证必须映射到有效的 Windows 域帐户,且不能使用本地的用户帐户。

    NTLM 验证

    NTLM 使用的是挑战响应协议,该协议最初是在Microsoft Windows NT® 中最先得到应用的,自此之后得到了 Windows 所有版本客户端和服务器的支持。当客户端和服务器都使用 Windows 系统时,它提供了安全验证机制,而且需要有效的域帐户。

    Kerberos 验证

    Kerberos 验证是 Windows 2000 及更新版本才有的特性,它以许多操作系统中都有的行业标准协议为基础。它允许执行相互验证,其中客户端和服务器都有理由相信对方的身份,并提供高级别的验证形式。为利用 Windows Server 2003 中的 Kerberos 特性,必须通过 HTTP.sys 以及作为 Windows Support Toos 一部分的 SetSPN.exe 实用工具,注册 Kerberos Service Principal Name(Kerberos 服务主体名,SPN)。

    Integrated 验证

    Integrated 验证提供了最好的 NTLM 和 Kerberos 验证。服务器将使用其中的一种验证类型并输入客户端请求,允许执行客户端支持的最安全验证,同时使旧版 Windows 也能使用该服务。可在 Windows 2003 中配置 Http.sys,使之与客户端协商要采用的协议。

    用于端点的验证方法是通过 CREATE 或 ALTER ENDPOINT 语句的 AUTHENTICATION 属性设置的。例如,下列代码将创建利用 Kerberos 执行验证的端点:

    CREATE ENDPOINT myEndpoint
    STATE=STARTED
    AS HTTP (PATH = '/MyHttpEndpoint',
    AUTHENTICATION = (KERBEROS),
    PORTS = (CLEAR),
    SITE = 'MySqlServer')
    FOR SOAP (WSDL = DEFAULT,
    DATABASE = 'myDB',
    NAMESPACE = 'http://example.com/MySqlServer/myDB/WebService')

    SQL Server 2008 支持侦听 HTTP 和用户定义的 TCP 端口的端点。也可对请求进行各种格式化:SOAP、Transact-SQL、Service Broker 专用格式以及数据库镜像专用格式。使用 SOA 时,可利用 WS-Security 标题验证 SQL Server 登录。

    Microsoft 已实现了 Web Service 端点验证,以支持各种协议和规范,本文只介绍其中几种。需要显式地启用验证选项,并确保客户端能够提供必要的凭证类型。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    抖音安全与信任开放日:揭秘推荐算法,告别单一标签依赖

    ultraedit编辑器打开文件时,总是提示是否转换为DOS格式,如何关闭?

    Cornell大神Kleinberg的经典教材《算法设计》是最好入门的算法教材

    从 Microsoft 下载中心安装 Windows 7 SP1 和 Windows Server 2008 R2 SP1 之前要执行的步骤

    Llama 2基于UCloud UK8S的创新应用

    火山引擎DataTester:如何使用A/B测试优化全域营销效果

    腾讯云、移动云继阿里云降价后宣布大幅度降价

    字节跳动数据平台论文被ICDE2023国际顶会收录,将通过火山引擎开放相关成果

    这个话题被围观超10000次,火山引擎VeDI如此解答

    误删库怎么办?火山引擎DataLeap“3招”守护数据安全

    IT头条

    平替CUDA!摩尔线程发布MUSA 4性能分析工具

    00:43

    三起案件揭开侵犯个人信息犯罪的黑灰产业链

    13:59

    百度三年开放2.1万实习岗,全力培育AI领域未来领袖

    00:36

    工信部:一季度,电信业务总量同比增长7.7%,业务收入累计完成4469亿元

    23:42

    Gartner:2024年全球半导体营收6559亿美元,AI助力英伟达首登榜首

    18:04

    技术热点

    iOS 8 中如何集成 Touch ID 功能

    windows7系统中鼠标滑轮键(中键)的快捷应用

    MySQL数据库的23个特别注意的安全事项

    Kruskal 最小生成树算法

    Ubuntu 14.10上安装新的字体图文教程

    Ubuntu14更新后无法进入系统卡在光标界面解怎么办?

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。