07 2008 档案
SQL Server 2005: 如何让用户只能加密数据却不能解密数据
摘要:我经常被问及这样的问题,能否让一个用户有加密数据的能力却不能解密数据呢? 答案是:可以。但在我展示这个方法之前,我们先稍微讨论一下对称密钥(symmetric key)。 用户能否加密或解密数据取决于用户能否够打开这个密钥。 如果用户可以打开密钥,那么他既能加密也能解密。 要想限制用户去使用密钥,需要删除用户打开密钥的能力。我们可以创建一个存储过程,将加密和打开密钥的过程封装进去,并让这个存储过程有权限执行这些操作(通过签名),然后赋予用户执行存储过程的权限。这样用户就可以通过存储过程访问密钥,但不能直接方法问密钥。注意,如果用户可以在并行操作中调用这个存储过程,可能会导致密钥被用户直接使用( 阅读全文
posted @ 2008-07-31 09:46 stswordman 阅读(2281) 评论(6) 推荐(0) 编辑
SQL Server 2005: 存储过程签名
摘要:SQLSERVER 2005提供的对存储过程签名(signature)功能是我最喜欢的。如果我们要编写一个存储过程,执行该存储过程里的代码需要权限P,并且我们想要用户Alice可以执行这个存储过程,但是我们不想将权限P直接赋予给用户Alice, 我们可以用证书(certificate)对这个存储过程进行签名来完成这一需求:a) 如果P是一个数据库级别的权限,那我们可以在相应的数据库中创建一个证书,使用证书创建一个用户(user),然后将权限p授权给这个用户b) 如果P是一个服务器级别的权限,那我们能要在master数据库中创建一个证书,使用证书创建一个登录(login),然后将权限P授权给这个 阅读全文
posted @ 2008-07-29 10:20 stswordman 阅读(2673) 评论(11) 推荐(1) 编辑
SQL Server 2005 helpful catalogs: crypt_properties and key_encryptions
摘要:不久之前,我回答过一个问题:如找出被证书(certificate)加密的密钥。 我写了一些查询,用于找出那些加密,签名的信息。在展示这些查询之前,我会对这两个视图做个简要的介绍:crypt_properties视图保存了签名(signature)相关的信息。可以用其中的thumbprint列来确定相关的密钥。key_encryptions视图保存了对称密钥加密(symmetric key)的相关信息。和crypt_properties视图一样,非对称密钥(asymmetric key)和证书也是用thumbprint列来确定的。 但是,对称密钥则完全不同,需要用到GUID.现在列出这些查询 : 阅读全文
posted @ 2008-07-28 11:04 stswordman 阅读(1077) 评论(0) 推荐(0) 编辑
outputProc
摘要:输出特定表的Insert存储过程 阅读全文
posted @ 2008-07-10 11:26 stswordman 阅读(382) 评论(0) 推荐(0) 编辑