在sqlserver的代理服务器节点的右键菜单里可以配置多服务器,基本上照着向导来就行了,配置步骤就几步,也不复杂,但是想让配置成功就比较麻烦点了,因为这会涉及到它的安全问题,如果配置不正确,配置的最后一步就不会成功。
先说一下主服务器和目标服务器sql代理的账户,这个还是比较简单的,主服务器用本地系统账户也行,用其他的账户也行,目标服务器如果不跟主服务器在同一台机器上,则要选择有网络访问能力和对主服务器有相应权限的用户来启动运行sql代理。
最让人头疼的是关于服务器传输的加密问题。默认情况下是在该目标服务器和主服务器之间启用完全 SSL 加密和证书验证,这需要在主服务器上安装相应的签名证书。这个是配置起来相对的要比较麻烦,如果没有安全证书但又想使用这个功有的话,可以在主服务器和目标服务器上,将注册表的 /HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/<instance_name>/SQLServerAgent/MsxEncryptChannelOptions(REG_DWORD) 设置为1或者0,默认的是2(<instance_name> 的值为 MSSQL.n。例如,MSSQL.1 或 MSSQL.3)。1代表仅在该目标服务器和主服务器之间启用加密,但不需要证书验证。0代表在该目标服务器和主服务器之间禁用加密。请仅在目标服务器和主服务器之间的通道已使用其他方法进行了保护时才选择此选项。具体的参见微软的网站在目标服务器上设置加密选项中的说明。
如果要使用安全证书,除了可以向专门的机构去申请之外,也可以自己来制作安全证书。一种是可以使用makecert工具,这个命令行工具需要在.net的cmd运行环境中才能得到,来生成一个测试证书,格式如下:
makecert -r -pe -n "CN= MySQLServerName" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
以上命令只需要将"CN= MySQLServerName"中的mysqlservername替换成主服务器的名字就行了。这样就生成了证书,然后可以从IIS中的默认网站的属性中的目录安全性的服务器证书那里分配现有证书,将刚才生成的证书安装上去,或者使用命令行工具certutil执行如下命令得到刚才生成的证书的 hash值
certutil -store "my" "MySQLServerName"
然后再使用httpcfg命令行工具将刚生成的证书注册安装上去,httpcfg工具网上有下,或者在windows2003的安装盘的support中的tools中寻找,httpcfg安装证书使用如下模式:
httpcfg set ssl /i 0.0.0.0:80 /h 2c8bfddf59a4a51a2a5b6186c22473108295624d /g "{2bb50d9c-7f6a-4d6f-873d-5aee7fb43290}"
/h后面要用刚才certutil -store "my" "MySQLServerName"得到的hash值替换就行了。有关这些的具体说明参见微软的 配置 SSL 使用的证书 使用IIS来安装SSL证书,要比命令行方便。
另外一种生成证书的办法就是安装证书服务,然后在IIS的默认网站属性中的目录安全性的服务证书里生成一个证书的请求,这里要注意的是证书的名字一定要和主服务器的计算机名相同,然后在管理工具中的证书颁发机构里,将刚才生成的请求文件导入,然后再颁发,这样就生成了证书,然后将证书导出成二进制也行,或者打开证书然后将它保存也行,然后再回到IIS的服务器证书那里,处理挂起的请求,打开刚才导出的证书文件,将它安装上去,或者是比较麻烦,先运行 mmc,然后在控制台中添加证书节点,然后将刚才生成的证书文件导入到个人节点中,然后还用刚才certutil命令或者在控制台中打开刚才导入的证书来查看它的HASH(它的HASH值在详细信息选项卡的微缩图里存储),然后再使用httpcfg来注册安装证书。
证书装好后,就可以在sqlserver配置管理器的sqlserver网络配置中的相应实例节点的属性中的证书选项卡中看到了,在那里选择使用这个证书,然后重启sqlserver,再进行多服务器配置,就不会报错,并配置成功了。不过到底在目标服务器中是不是也需要安装同样的ssl安全证书,我也没太试出来,反正我是好像装了以后才成功的,安装过程就是把刚才导出的证书文件考到目标服务器上,然后用控制台把它导入,然后打开证书,在证书路径里查看证书,然后在其中可以看到安装安钮,点它就可以安装了,或者使用IIS可能也可以,我没做具体测试IIS这一方法。
关于这个还可以参见微软的网站:
加密与 SQL Server 的连接如何设置主服务器 (SQL Server Management Studio)反正是挺麻烦的,因为涉及到那个加密问题,最简单的,当然是在网络情况为安全的前提下,直接在注册表里把那项改成1或者0就OK了。累死了!本以为今天是搞不明白了,不过居然最后枯木逢春,真是万幸。
sql server代理服务 sql server代理服务器
转载文章标签 sql server代理服务 sqlserver 服务器 sql server 加密 文章分类 SQL Server 数据库