设为首页 收藏本站
查看: 755|回复: 0

[经验分享] 在 SQL Server 中为存储过程签名

[复制链接]

尚未签到

发表于 2016-11-1 03:06:43 | 显示全部楼层 |阅读模式
   从 SQL Server 2005 开始,您可以使用证书或非对称密钥为存储过程签名。 此设计适用于无法通过所属权链继承权限或所属权链中断的方案,如动态 SQL。 然后您可以创建一个映射到该证书的用户,对存储过程需要访问的对象授予证书用户权限。
   在执行存储过程时,SQL Server 会将证书用户的权限与调用方的权限组合在一起。 与 EXECUTE AS 子句不同,它不更改过程的执行上下文。 返回登录名和用户名的内置函数会返回调用方的名称,而不是证书用户的名称。
   数字签名是用签名人的私钥加密的数据摘要。 该私钥可确保数字签名对于其持有者或所有者是唯一的。 您可以为存储过程、函数或触发器签名。
  
  
  
  
  
  注意:您可以在 master 数据库中创建证书以便授予服务器级权限。

http://i.msdn.microsoft.com/Hash/030c41d9079671d09a62d8e2c1db6973.gif创建证书


<!---->  当使用证书为存储过程签名时,会使用私钥创建由该存储过程代码的加密哈希组成的数据摘要。 在运行时,数据摘要将使用公钥解密并与存储过程的哈希值进行比较。 修改存储过程会使哈希值无效,使数字签名不再匹配。 这可防止无权访问私钥的人更改存储过程代码。 因此,每次修改过程时都必须重新为过程签名。
  为模块签名涉及以下四个步骤:

  •   使用 Transact-SQL CREATE CERTIFICATE [certificateName] 语句创建一个证书。 此语句具有多个用于设置开始日期、结束日期和密码的选项。 默认的到期日期为一年
  •   使用 Transact-SQL CREATE USER [userName] FROM CERTIFICATE [certificateName] 语句创建与该证书关联的数据库用户。 此用户仅存在于数据库中,不与登录名关联。
  •   向证书用户授予访问数据库对象所需的权限。
  注意:证书不能向用户授予已经使用 DENY 语句撤消的权限。 DENY 始终优先于 GRANT,以防止调用方继承授予给证书用户的权限。


  •   使用 Transact-SQL ADD SIGNATURE TO [procedureName] BY CERTIFICATE [certificateName] 语句通过证书为过程签名。


  以上内容转自:http://msdn.microsoft.com/zh-cn/library/bb669102.aspx
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293850-1-1.html 上篇帖子: Microsoft SQL Server 2000整合规划 下篇帖子: SQL Server Compact 3.5 SP2已经发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表