设置SQL Server Service Broker进行安全通信(上)

日期: 2009-07-09 作者:Denny Cherry翻译:孙瑞 来源:TechTarget中国 英文

从一个实例向另一个实例发送SQL Server Service Broker信息最安全的方法是使用证书以确保通信安全。虽然这是最安全方法,但它比普通SQL Server或Windows身份验证技术要复杂得多。   为实现本文的目的,我们将从购物车数据库向购票系统数据库发送信息。购物车数据库安装在SQL1服务器上而购票系统数据库安装在SQL2上,两者在不同的服务器上。

所有的这些声明全部运行在每个实例的主数据库上。   首先需要设置每个实例的主密钥。使用CREATE MASTER KEY声明可以实现。这个密码是实例加密的关键,所以要用一个复杂的。

创建主密钥成功后,你需要修改并配置它以便由服务主密钥……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

从一个实例向另一个实例发送SQL Server Service Broker信息最安全的方法是使用证书以确保通信安全。虽然这是最安全方法,但它比普通SQL Server或Windows身份验证技术要复杂得多。

  为实现本文的目的,我们将从购物车数据库向购票系统数据库发送信息。购物车数据库安装在SQL1服务器上而购票系统数据库安装在SQL2上,两者在不同的服务器上。所有的这些声明全部运行在每个实例的主数据库上。

  首先需要设置每个实例的主密钥。使用CREATE MASTER KEY声明可以实现。这个密码是实例加密的关键,所以要用一个复杂的。创建主密钥成功后,你需要修改并配置它以便由服务主密钥加密。服务主密钥是由SQL Server实例来生成和维护的。这就允许SQL Server实例在不设密码的前提下为主数据库打开任何数据库主密钥。

  CREATE MASTER KEY ENCRYPTION BY PASSWORD ='YourVeryLongSecurePassword!'
  GO
  ALTER MASTER KEY
  ADD ENCRYPTION BY SERVICE MASTER KEY
  GO

  主密钥创建成功后,你就可以用CREATE CERTIFICATE声明来创建证书了。你要为证书来指定名称、主题、起始日期和终止日期。这将基于数据库主密钥来创建一个一个证书而不是基于密码。如果实例被许多应用程序共享,那么你应该用一些更加通用的名称。

  CREATE CERTIFICATE ServiceBrokerCert_SQL1
  WITH SUBJECT = 'Service Broker Certificate',
  START_DATE = '1/1/2009',
  EXPIRY_DATE = '12/31/2099'
  GO

  在第二个实例中创建不同名称的证书。

  CREATE CERTIFICATE ServiceBrokerCert_SQL2
  WITH SUBJECT = 'Service Broker Certificate',
  START_DATE = '1/1/2009',
  EXPIRY_DATE = '12/31/2099'
  GO

  证书创建的工作完成后,你需要创建并配置Service Broker端点以便验证。你可以用CREATE ENDPOINT声明来完成这一动作,指出要用FOR SERVICE_BROKER选项并给出指定证书。在这个例子中,要求通信加密,并使用RC4加密法则。

  可供选择的加密方案有以下几种:

  RC4——在实例中使用RC4加密法则配置端点。

  AES——在实例中使用AES加密法则配置端点。

  AES RC4——先使用AES加密算法配置端点,然后使用RC4加密。

  RC4 AES——先使用RC4加密算法配置端点,然后使用AES加密。

  CREATE ENDPOINT [ServiceBrokerEndpoint]
  AUTHORIZATION [sa]
  STATE=STARTED
  AS TCP (LISTENER_PORT = 1234, ;LISTENER_IP = ALL)
  FOR SERVICE_BROKER(MESSAGE_FORWARDING = DISABLED,
  MESSAGE_FORWARD_SIZE = 10,
  AUTHENTICATION = CERTIFICATE ServiceBrokerCert_Cart,
  ENCRYPTION = REQUIRED ALGORITHM RC4) GO

翻译

孙瑞
孙瑞

相关推荐