Я пытаюсь создать симметричный ключ в 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]
Я создал ключ с моей учетной записи. Я открываю ключ в начале хранимой процедуры и шифрует или дешифрует, как показано здесь: http://msdn.microsoft.com/en-us/library/ms179331.aspx AppUser принадлежит к роли общего сервера и является db_owner, общедоступным в самой базе данных. fn_my_permissions() не возвращает результатов. – AndyMcKenna
Итак, AppUser - db_owner? Это предоставило бы ему доступ ко всему в дБ, не так ли? –
Да, и я хочу, чтобы у него был доступ к нему. Мне просто нужно заблокировать всех остальных. Я попытаюсь создать ключ в качестве AppUser и посмотреть, есть ли у моей личной учетной записи доступ к нему. Я буду уверен, что я тоже не db_owner. – AndyMcKenna