2009-06-30 6 views
0

Я пытаюсь создать симметричный ключ в SQL Server 2005 и ограничить его только учетными записями sa и приложений. При попытке открыть все остальные учетные записи должны появиться ошибки.Grant Symmetric Key доступ только к 2 пользователям

Вот как я его создаю. Я изменил имена для целей этого вопроса.

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 

В этот момент ключ может быть открыт моим пользователем приложения, хотя я не дал ему разрешения. Если я DENY [общедоступной] группы, я не могу открыть ключ даже после того, как я позже предоставил его непосредственно пользователю приложения. Я не хочу DENY каждого пользователя отдельно, потому что я не знаю, какие пользователи существуют в Production. Я также хочу, чтобы все новые пользователи создавали, чтобы не иметь доступа к этому ключу.

запрещающее и ГРАНТ линии я использую являются:

DENY VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [public] 
GRANT VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [AppUser] 

ответ

1

Кто владеет ключами? Как ваше приложение получает доступ к ключам? Действительно ли цепочка собственности играет какую-либо роль? К каким группам и ролям принадлежит AppUser?

Какое разрешение fn_my_permissions('My_Key', 'SYMMETRIC KEY') возвращение при выполнении AppUser (сразу после создания ключа)?

Обновление: Исправлена ​​опечатка в fn_my_permissions защищаемого типа

+0

Я создал ключ с моей учетной записи. Я открываю ключ в начале хранимой процедуры и шифрует или дешифрует, как показано здесь: http://msdn.microsoft.com/en-us/library/ms179331.aspx AppUser принадлежит к роли общего сервера и является db_owner, общедоступным в самой базе данных. fn_my_permissions() не возвращает результатов. – AndyMcKenna

+0

Итак, AppUser - db_owner? Это предоставило бы ему доступ ко всему в дБ, не так ли? –

+0

Да, и я хочу, чтобы у него был доступ к нему. Мне просто нужно заблокировать всех остальных. Я попытаюсь создать ключ в качестве AppUser и посмотреть, есть ли у моей личной учетной записи доступ к нему. Я буду уверен, что я тоже не db_owner. – AndyMcKenna

 Смежные вопросы

  • Нет связанных вопросов^_^