CONTROL在证书环境中的含义是什么?

我正试图通过证书和对称密钥在sql server 2005中实现encryption

并且我知道应用程序用户应该具有以下权限才能encryption和解密数据

1)对证书的控制权限和2)对称密钥的参考

(让我知道如果我错了)

现在我关心的是CONTROL在证书环境中的含义是什么? 如果我的用户1对我的证书Cert1拥有“控制”权限,他们可以做什么,是否有办法限制他的进一步,但用户1仍然能够encryption\解密数据

我无法find证书和密钥pipe理的良好实践文档,所以有人可以为此提供良好的实践build议

谢谢,Ram

从BOL: http : //msdn.microsoft.com/en-us/library/ms191291.aspx

控制 – 赋予被授予者类似所有权的能力。 被授予者有效地拥有所有已确定的权限。 被授予CONTROL的委托人也可以授予安全权限。 由于SQL Server安全模型是分层结构的,因此在特定范围内的CONTROL隐式地在该范围内的所有安全性中包含CONTROL。 例如,数据库上的CONTROL意味着数据库的所有权限,数据库中所有程序集的所有权限,数据库中所有模式的所有权限以及数据库内所有模式内的对象的所有权限。


实质上,当您授予控制权时,您将授予用户对证书的完全访问权限。 您可能想要查看以下链接,以获取有关SQLencryption的更多信息… SQL Server Central文章做得非常好,可能是您如何执行此操作的指南的最佳select。

http://technet.microsoft.com/en-us/library/ms189586%28SQL.90%29.aspx

http://www.sqlservercentral.com/articles/SQL+Server+2005+-+Security/sql2005symmetricencryption/2291/

http://www.mssqltips.com/tip.asp?tip=1319

CONTROL允许对证书执行任何操作。 这包括丢弃证书。 不幸的是,如果用户具有CONTROL权限,则无法进一步限制用户。 这是野兽的不幸本质。

如此一来,您可以创build一个存储过程,在另一个用户帐户(如dbo)的上下文中运行,该帐户对证书有CONTROL,以便用它打开用于encryption和解密数据的对称密钥。 用户可以具有执行存储过程的权限。 这样用户可以使用证书,但只能通过存储过程。 因此,你完全控制这样的访问是如何完成的。