从 SQL Server 2005 开始,您可以使用证书或非对称密钥为存储过程签名。 此设计适用于无法通过所属权链继承权限或所属权链中断的方案,如动态 SQL。 然后您可以创建一个映射到该证书的用户,对存储过程需要访问的对象授予证书用户权限。
在执行存储过程时,SQL Server 会将证书用户的权限与调用方的权限组合在一起。 与 EXECUTE AS 子句不同,它不更改过程的执行上下文。 返回登录名和用户名的内置函数会返回调用方的名称,而不是证书用户的名称。
数字签名是用签名人的私钥加密的数据摘要。 该私钥可确保数字签名对于其持有者或所有者是唯一的。 您可以为存储过程、函数或触发器签名。
注意:您可以在 master 数据库中创建证书以便授予服务器级权限。
|
<!---->
当使用证书为存储过程签名时,会使用私钥创建由该存储过程代码的加密哈希组成的数据摘要。 在运行时,数据摘要将使用公钥解密并与存储过程的哈希值进行比较。 修改存储过程会使哈希值无效,使数字签名不再匹配。 这可防止无权访问私钥的人更改存储过程代码。 因此,每次修改过程时都必须重新为过程签名。
为模块签名涉及以下四个步骤:
-
使用 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
分享到:
相关推荐
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
SqlServer存储过程的导出导入 近日在研究SQL的存储过程,这里我陆续将我在使用存储过程中碰到的问题及解决办法发布到网上,请各位大虾指正。 SqlServer存储过程的导出导入,网上相关资料特别少,经过摸索,这里写...
SQL Server中存储过程比直接运行SQL语句慢的原因
一步一步操作vs中断点测试sqlserver的存储过程
资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...
查看SQL SERVER 加密存储过程 查看SQL SERVER 加密存储过程
详细介绍了SqlServer的存储过程调试方法,适合初学者及想深入研究的开发人员
sqlserver2008 存储过程与储发器 详解 书籍
文档记录了SQL Server在存储运用时的语法,需要有一定的SQL语言学习基本,本文档只是做了梳理与总结,以便查看和识记。
主要介绍了SQLServer存储过程中事务的使用方法,简短的代码带大家更好的学习使用SQLServer存储过程中事务,感兴趣的小伙伴们可以参考一下
sql server系统存储过程,sql server系统存储过程
SQLserver存储过程异常处理
可以将SQL Server存储过程转为oracle存储过程的工具
第2章 SQL Server环境 第3章 存储过程的设计概念 第4章 T-SQL的基本编程结构 第5章 函数 第6章 复合T-SQL结构:批处理、脚本和事务 第7章 调试和错误处理 第8章 特殊类型的过程 第9章 高级存储过程编程 第10章 与SQL...
获取SQLServer数据库中所有存储过程的源代码,可以对代码进行搜索,也可以把源代码保存,非常实用。 可根据需要修改。
oracle到sqlserver 存储过程语法转换,希望对大家有帮助啊! 最近刚把oracle的数据库移植到sqlserver!
SQLServer 常用存储过程,SQLServer 常用存储过程
针对sqlserver 2008 存储过程通过With Encryption加密方式的解密
sql server调用存储过程,sql server,存储,过程,存储过程,java,jsp,EL