证书中的 CONTROL 是什么意思

证书中的 CONTROL 是什么意思

我正在尝试通过证书和对称密钥在 SQL Server 2005 中实现加密

我知道应用程序用户应该具有以下访问权限才能加密和解密数据

1) 证书上的 CONTROL 权限和 2) 对称密钥上的 REFERENCES

(如果我错了请告诉我)

现在我关心的是证书上下文中的 CONTROL 是什么意思?如果我的用户 1 对我的证书 Cert1 具有控制权限,他能做什么?有没有办法进一步限制他,但用户 1 仍然能够加密\解密数据

我找不到任何有关证书和密钥管理的良好实践文档,所以有人可以为此提供良好实践建议吗

谢谢,拉姆

答案1

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

控制 - 授予被授权者类似所有权的能力。被授权者实际上拥有对安全对象的所有已定义权限。被授予控制权的主体也可以授予对安全对象的权限。由于 SQL Server 安全模型是分层的,因此特定范围内的控制隐含了对该范围内所有安全对象的控制。例如,对数据库的控制意味着对该数据库的所有权限、对数据库中所有程序集的所有权限、对数据库中所有架构的所有权限以及对数据库中所有架构内的对象的所有权限。


本质上,当您授予控制权时,您就授予了用户对证书的完全访问权限。您可能需要查看以下链接以获取有关 SQL 加密的更多信息... SQL Server Central 文章确实做得很好,可能是指导您如何执行此操作的最佳选择。

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

答案2

CONTROL 权限授予对证书进行任何操作的权限。这包括删除证书。不幸的是,如果用户拥有 CONTROL 权限,则无法进一步限制用户。这就是野兽的不幸本质。

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

相关内容