2013-09-25 9 views
6

pomocą SQL 2005Nie można odnaleźć klucza symetrycznego „”, ponieważ nie istnieje lub nie masz pozwolenia

stworzyłem Master Key zaszyfrowany hasłem, a następnie szyfrowany klucz główny z usługą Master Key

Następnie utworzyłem ASYMMETRIC_KEY, którego używam do szyfrowania mojego SYMMETRIC_KEY Zrobiłem to wszystko za pomocą użytkownika SA dla SQL i zalogowałem się do serwera Windows jako administrator domeny.

Mam użytkownika w mojej bazie danych, który ma uprawnienia dbo tylko do mojej bazy danych, a następnie przyznam, że użytkownik wykonuje uprawnienia dla wszystkich niezbędnych procedur przechowywanych, a także odmawiam definicji widoku tym samym przechowywanym procedurom.

Procedura przechowywana, która sprawia mi kłopot w miejscu szyfrowania, jest tutaj. Także to wszystko działało na SQL2012 w moim testowym komputerze, ale teraz, gdy tworzę tego na serwerze produkcyjnym z SQL 2005 i to zawodzi

open symmetric key 
    MYKEY_NAME_SYM decryption by Asymmetric key MYKEY_NAME_ASYM 
    set @ENCRYPTVARIABLE = (select ENCRYPTBYKEY(KEY_GUID('MYKEY_NAME_SYM'), @ENCRYPTCOLUMN))  
close symmetric key MYKEY_NAME_SYM 

błędu otrzymuję to:

Cannot find the symmetric key 'MKEY_NAME_SYM', because it does not exist or you do not have permission. 

Więc Domyślam się, że użytkownik używam w mojej bazy danych nie ma uprawnień, ale gdy próbuję udzielić uprawnień

GRANT 
VIEW DEFINITION ON SYMMETRIC KEY::MKEY_NAME_SYM TO [myuser] 

otrzymuję ten sam błąd nie może znaleźć klucz symetryczny lub nie masz uprawnień s.

+0

miałem pewne problemy z uprawnieniami i Myślę, że "ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY" naprawił to. – bhs

+0

Tak, uruchomiłem również to polecenie, ale nadal otrzymuję błąd. Mam wrażenie, że ma coś wspólnego z moim użytkownikiem bazy danych, który ma uprawnienia do moich zapisanych procedur, ale nie klucze. Ale kiedy próbuję przyznać tego użytkownika uprawnienia do moich kluczy szyfrowania, mówi, że nie mam uprawnień, aby to zrobić i Im przy użyciu konta SA sql – Jay

+0

Spójrz na [ten artykuł MSDN] (http://technet.microsoft .com/en-us/library/ms179887.aspx). Jestem całkiem pewny, że musiałem dać REFERENCJE również ... – bhs

Odpowiedz

2

Potrzebowałem zmienić SQL, aby używać uwierzytelniania systemu Windows, ponieważ jedynym użytkownikiem, który posiadał uprawnienia, był użytkownik domena \ admin, z którego utworzyłem klucz.

Gdy przeszedłem do uwierzytelniania systemu Windows byłem wtedy w stanie udzielić uprawnień do Keys i wszystko było dobre

11

Z administracyjnego zapisu użytkownika w konsoli skryptu:

 
    --Grant View 
    GRANT VIEW DEFINITION ON CERTIFICATE::[Certificate_Name] TO [user] 
    GRANT VIEW DEFINITION ON SYMMETRIC KEY::[EncryptionKey_Name] TO [user] 

    --Grant Control 
    GRANT CONTROL ON CERTIFICATE::[Certificate_Name] TO [user] 
Powiązane problemy