(1.3.2)登录验证(加密连接与登录验证)
1.加密连接
与之前版本不同的是,在sql server 2005中,始终对客户端应用程序与sql server2005连接时传输的凭证(在登录数据包中)进行加密。加密使用可信证书颁发机构颁发的证书(如果可用)进行;如果未安装可信证书,则在启动实例时sql server将生成自签名证书,并使用自签名证书对凭据进行加密。
如果要对在sql server 实例和客户端应用程序之间传输的所有数据进行加密,则需要将sql server网络协议的ForceEncryption 选项值设置为 '是'。该选项可以通过sql server【配置工具】中的【sql server配置管理器进行设置】
(1)sql server服务端配置
【1】依次单击 开始-》程序-》Microsoft sql server 2005 -》配置工具-》 sql server configuration manager
【2】在界面中展开左侧列表 sql server 2005网络配置,右击要配置的实例协议
【3】如果设置为事,则所有的数据传输都要求以加密形式进行;如果设置为否,则由客户端决定发起的会话是否需要加密。
注意:传输的凭证(在登录数据包中)始终被加密
【4】在【证书】选项卡中,可以配置sql server使用可信证书颁发机构办法的证书进行加密:如果不配置指定的证书,则使用自签名证书进行加密。
(2)sql server客户端配置
【1】依次单击 开始-》程序-》Microsoft sql server 2005 -》配置工具-》 sql server configuration manager
【2】右键左侧列表中的 sql server Native client-》打开【属性】,ForceEncryption属性确定是否强制进行协议加密,设置为事,表示所有的数据传输都要求以加密的形式进行;设置为否,表示不要求加密传输的数据。
(3)证书申请
自签名证书有助于提高安全性,但它不提供身份验证,容易在传输中途受到攻击。在生产环境中或在链接到interNet的服务器上,应该使用可信证书颁发机构颁发的证书进行SSL加密。这要求在sql server实例的计算机上安装证书颁发机构颁发的服务器证书,并且客户端必须新人同一个根证书签发颁发机构。
用户sql server 2005 的SSL 加密需求的证书需满足一下条件:
--证书的subject属性必须指明共用名称(CN)与主机名或服务器完全限定的域名一样。如果sql server在故障转移群集中运行,则共用名称必须与虚拟服务器的主机名或FQDN相同,并且在故障转移群集的所有节点上都必须提供这些证书。
--证书必须用于服务器身份验证。这要求使用该证书的增强型密钥用法属性执行服务器身份验证(1.3.6.1.5.5.7.3.1)
--后面省略了,太多了,有兴趣的朋友可以自行百度。
2.登录验证
(1)登录身份
分为2种,一个是sql server登录(账户密码形式),一种是windows登录(域形式)
【1】sql server登录
--基本用法
create login log_name with password = 'password' [HASHED] [MUST_CHANGE] --HASHED:哈希运算密码 MUST_CHANGE:第一次登录必须要密码 [,SID = sid] [,DEFAULT_DATABASE = database] --默认所属数据库 [,DEFAULT_LANGUAGE = language] --默认语言 [,CHECK_EXPIRATION = {ON|OFF}] --如果为on,指示对此登录启用密码强制过期策略。
[,CHECK_POLICY = {ON|OFF}] --如果为ON,表示对此登录名强制运行实例计算机上的windows密码策略; [,CREDENTIAL = credential_name]
【2】windows登录
windows登录时操作系统的windows登录在sql server中的登录映射,这意味着windows登录除了需要再sql server中创建之外,还需要在操作系统中创建与之对应的登录。
--login_name 必须与操作系统的windows登录对应,域名\用户名或组名。被映射的windows登录可以是组或者具体的用户;
--如果是组,则该组的所有成员登录时都使用此sql server映射中的windows登录进行身份验证。
create login login_name from windows [ with [,DEFAULT_DATABASE = database] [,DEFAULT_LANGUAGE = language] ]
无论是sql server登录还是windows登录,都可以使用ALTER LOGIN修改其属性,通常通过DISABLE与ENABLE选项禁用/启用摸个登录。sql server登录密码修改一般也通过ALTER LOGIN来完成。
(3)身份验证和身份验证模式
当用户用值得的登录名称和密码从非新人连接进行连接时,sql server通过检查是否已设置sql server登录账户,以及指定的密码是否与以前记录的密码匹配,自行进行身份验证。如果sql server未设置登录账户,则身份验证失败,而且用户将受到错误信息。
当用户通过用户账户进行连接时,sql server通过回叫windows以获得用户当前登录windows的信息来重新验证账户名和密码。也就是说,使用windows身份登录时,用户无法指定连接sql server的用户名和密码。
【1】 windows身份验证模式
windows身份验证模式仅允许使用windows登录来访问sql server实例。
【2】混合模式(windows身份验证和sql server身份验证)、
在混合模式下,这两种模式均可用于访问sql server实例。
身份验证模式可以在安装sql server实例时设置。在安装sql server视力好,也可以随时调整身份验证模式。
--操作步骤如下
--打开ssms,在对象资源管理器中连接到需要操作的实例,如果没有打开它可以按F8打开或【视图】-》【对象资源管理器】
--右击实例名,属性
--在弹出界面中点击【安全性】选项卡 ,在服务器身份验证选项组中,可以修改。
--如图