Mam bazę danych przeniesioną ze starej instancji SQL Server 2008R2 do klastra AlwaysOn programu SQL Server 2012. Istnieje kilka pól w bazie danych, które są szyfrowane za pomocą SQL Servers wbudowanych funkcji szyfrowania (klucz główny, cert, klucz symetryczny).Szyfrowanie za pomocą klastra AlwaysOn
Uruchomiłem następujące polecenia w mojej instancji QA AO (te same kroki, które zostały uruchomić na starym serwerze):
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
CREATE CERTIFICATE myCert
WITH SUBJECT = 'password'
CREATE SYMMETRIC KEY myKeyName
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY CERTIFICATE myCert
Dodatkowo musiałem uruchomić następujące polecenia, aby prawidłowo odszyfrować dane:
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
Kiedy uruchomić tego polecenia I wtedy zobaczyć wszystkie dane odszyfrowanych:
OPEN SYMMETRIC KEY myKeyName
DECRYPTION BY CERTIFICATE myCert
select TOP 1000 userid, CONVERT(nVARCHAR(255),DECRYPTBYKEY(password)) from users
CLOSE SYMMETRIC KEY myKeyName
Jak dotąd tak dobrze. Jeśli jednak uruchomię te same kroki w klastrze produkcyjnym AO, to zapytanie:
select TOP 1000 userid, CONVERT(nVARCHAR(255),DECRYPTBYKEY(password)) from users
zwraca NULL dla hasła. Aby to nieco bardziej szalony zrobić, to stwierdzenie (uruchamiane w kontekście środowiska QA) odszyfrowuje wszystko z obu baz danych tylko dobrze:
OPEN SYMMETRIC KEY myKeyName
DECRYPTION BY CERTIFICATE myCert
SELECT TOP 1000
userid,
CONVERT(nVARCHAR(255),DECRYPTBYKEY(password))
FROM users
SELECT TOP 1000
userid,
CONVERT(nVARCHAR(255),DECRYPTBYKEY(password))
FROM PRODUCTIONAO.prod_database.dbo.users
CLOSE SYMMETRIC KEY myKeyName
Nie jestem pewien, dlaczego to będzie działać na moim instancji QA, ale nie w mojej instancji produkcji. Każda pomoc będzie bardzo ceniona!
Jaka jest różnica pomiędzy pudełkiem QA a pudełkiem Prod? Czy to wszystko na tym samym sprzęcie? Ten sam system operacyjny? Ten sam Service Pack itp.? –
Dodano dla ciebie kolejną odpowiedź. –
Są to różne klastry AO, ale dwie maszyny w każdym klastrze są identyczne. Maszyny są wirtualne. – dparsons