SQL Server 2005存储过程签名(三)

日期: 2008-07-31 作者:stswordman 来源:TechTarget中国 英文

 







&#101xecute as login = ’alice’; 
  sp_createPrincipal ’bob’, ’Apufe@))%’; 
  revert; 


    — 使用证书对存储过程进行签名


  – 首先我们要创建一个数据库主密钥(database master key)







create master key encryption by password = ’Apufe@))%’;  create certificate certSigncreatePrincipal with subject = ’for signing procedure sp_createPrincipal’; 


  – 签名存储过程sp_createPrincipal 







add signature to sp_createPrincipal by certificate certSigncreatePrincipal; 


    — 现在签名完成了,可以将证书的私钥移除了







alter certificate certSigncreatePrincipal remove private key; 


  – 对证书进行备份,随后在master数据库中将要使用该备份







backup certificate certSigncreatePrincipal to file = ’certSigncreatePrincipal.cer’; 


  – 创建一个用户并将用户映射到证书







create user u_certSigncreatePrincipal from certificate certSigncreatePrincipal; 

  –通过授权映射映射的方式将alter ANY USER权限赋给证书 (因为用户和证书是映射的,所以权限也就赋给了证书,SQLSERVER本身没有直接将权限赋给证书的方法。译者注)







grant alter any user to u_certSigncreatePrincipal; 

  – 在master数据库中创建该证书







use master; create certificate certSigncreatePrincipal from file = ’certSigncreatePrincipal.cer’; 


    — 创建登录并映射到证书







create login l_certSigncreatePrincipal from certificate certSigncreatePrincipal; 


  – 通过授权映射登录的方式将alter ANY LOGIN权限赋给证书







grant alter any login to l_certSigncreatePrincipal;


  – 完成!







use demo; 


    — 验证一下,master数据库中的证书和demo数据库中的证书是一样的。







select c.name from sys.certificates c, master.sys.certificates mc where c.thumbprint = mc.thumbprint; 


  – 现在alice可以创建主体了 


    




 &#101xecute as login = ’alice’;  
  sp_createPrincipal ’bob’, ’Apufe@))%’;  
  revert;  
  – cleanup 
  drop user u_certSigncreatePrincipal; 
  drop login l_certSigncreatePrincipal; 
  drop procedure sp_createPrincipal; 
  drop certificate certSigncreatePrincipal; 
  drop user alice; 
  drop login alice; 
  drop user bob; 
  drop login bob; 
   
   
  use master; 
   
  drop certificate certSigncreatePrincipal; 
  drop database demo; 
  – EOD

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

相关推荐