代码之家  ›  专栏  ›  技术社区  ›  AndyMcKenna

仅向2个用户授予对称密钥访问权限

  •  0
  • AndyMcKenna  · 技术社区  · 15 年前

    我试图在SQLServer2005中创建一个对称密钥,并将其限制为仅限SA和应用程序用户帐户。所有其他帐户在试图打开时都会出错。

    以下是我创建它的方法。为了这个问题,我改了名字。

    CREATE CERTIFICATE My_Certificate
      WITH SUBJECT = 'My Cert Subject';
    GO
    
    CREATE SYMMETRIC KEY My_Key
      WITH ALGORITHM = AES_256
      ENCRYPTION BY CERTIFICATE My_Certificate;
    GO
    

    此时,我的应用程序用户可以打开密钥,即使我没有授予它权限。如果我拒绝[public]组,我就无法打开该密钥,即使后来我将其直接授予应用程序用户。我不想单独拒绝每个用户,因为我不知道生产中存在哪些用户。我还希望创建的任何新用户都不能访问此密钥。

    我使用的拒绝和授权行是:

    DENY VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [public]
    GRANT VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [AppUser]
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Remus Rusanu    15 年前

    钥匙是谁的?你的应用程序如何访问密钥?所有权链是否可能发挥任何作用?AppUser属于哪些组和角色?

    什么许可证 fn_my_permissions ('My_Key', 'SYMMETRIC KEY') 执行时返回 AppUser (在创建密钥之后)?

    更新:修正了输入错误 我的权限 安全类型