Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Błąd klucza otwartego SQL Server 2008 po zmianie serwera fizycznego

Klucz główny bazy danych jest szyfrowany przy użyciu klucza głównego serwera, który jest specyficzny dla komputera, na którym zainstalowany jest program SQL Server. Po przeniesieniu bazy danych na inny serwer tracisz możliwość automatycznego odszyfrowania i otwarcia głównego klucza bazy danych, ponieważ klucz serwera lokalnego najprawdopodobniej będzie inny. Jeśli nie możesz odszyfrować głównego klucza bazy danych, nie możesz odszyfrować niczego, co od niego zależy (certyfikaty, klucze symetryczne itp.).

Zasadniczo chcesz ponownie zaszyfrować klucz główny bazy danych za pomocą nowego klucza serwera, co można zrobić za pomocą tego skryptu (przy użyciu uprawnień administratora):

-- Reset database master key for server (if database was restored from backups on another server)
OPEN MASTER KEY DECRYPTION BY PASSWORD = '---your database master key password---'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
GO

Należy pamiętać, że podczas tworzenia klucza głównego bazy danych należy zawsze podać hasło, aby można było otworzyć klucz za pomocą hasła w scenariuszu, w którym nie można użyć klucza głównego usługi — miejmy nadzieję, że hasło jest gdzieś przechowywane!

Alternatywnie możesz przywrócić kopię zapasową klucza głównego bazy danych - ale potrzebujesz takiego, który został utworzony dla serwera docelowego, a nie serwera źródłowego.

Jeśli nie masz ani kopii zapasowej, ani hasła, nie jestem pewien, czy będziesz w stanie odzyskać zaszyfrowane dane na nowym serwerze, ponieważ będziesz musiał usunąć i odtworzyć klucz główny bazy danych z nowym hasłem, który zabije wszystkie zależne klucze i dane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL 2008 - pobierz wszystkie nazwy tabel i ich liczbę wierszy w bazie danych

  2. Użyj DATABASEPROPERTYEX(), aby zwrócić ustawienia bazy danych w SQL Server

  3. Normalizacja tabeli (przetwarzanie pól oddzielonych przecinkami na pojedyncze rekordy)

  4. Pobieranie maksymalnej wartości z wierszy i dołączanie do innej tabeli

  5. Przekaż typ wartości tabeli do procedury składowanej programu SQL Server za pośrednictwem Entity Framework