Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Details
| Attribute | Value |
|---|---|
| Nazwa produktu | SQL Server |
| Identyfikator zdarzenia | 15581 |
| Źródło zdarzenia | MSSQLSERVER |
| Component | SQLEngine |
| Nazwa symboliczna | SEC_NODBMASTERKEYERR |
| Tekst wiadomości | Utwórz klucz główny w bazie danych lub otwórz klucz główny w sesji przed wykonaniem tej operacji. |
Explanation
Błąd 15581 pojawia się, gdy SQL Server nie jest w stanie odzyskać bazy danych włączonej do szyfrowania danych transparentnego (TDE). Komunikat o błędzie, taki jak poniższy, jest rejestrowany w logu błędów SQL Server
2020-01-14 22:16:26.47 spid20s Błąd: 15581, Nasilenie: 16, Stan: 3.
2020-01-14 22:16:26.47 spid20s Prosimy o utworzenie klucza głównego w bazie danych lub otwarcie klucza głównego w sesji przed wykonaniem tej operacji.
Możliwa przyczyna
Problem ten pojawia się, gdy szyfrowanie klucza głównego dla klucza głównego bazy danych w głównej bazie danych zostaje usunięte po wykonaniu następującego polecenia:
Use master
go
alter master key drop encryption by service master key
Klucz główny serwisu służy do szyfrowania certyfikatu używanego przez klucz główny bazy danych. Każda próba użycia bazy danych z TDE wymaga dostępu do klucza głównego bazy danych w bazie głównej. Klucz główny, który nie jest szyfrowany przez klucz głównego serwisu, musi zostać otwarty za pomocą OPEN MASTER KEY instrukcji (Transact-SQL) wraz z hasłem na każdej sesji wymagającej dostępu do klucza głównego. Ponieważ tego polecenia nie można wykonać na sesjach systemowych, odzyskiwanie nie może zostać ukończone na bazach danych z TDE.
Akcja użytkownika
Aby rozwiązać problem, włącz automatyczne odszyfrowanie klucza głównego. W tym celu uruchom następujące polecenia:
Use master
go
open master key DECRYPTION BY PASSWORD = 'password'
alter master key add encryption by service master key
Użyj poniższego zapytania, aby sprawdzić, czy automatyczne odszyfrowanie klucza głównego przez klucz głównego usługi zostało wyłączone dla głównej bazy danych:
select is_master_key_encrypted_by_server from sys.databases where name = 'master'
Jeśli to zapytanie zwraca wartość 0, automatyczne odszyfrowanie klucza głównego przez klucz głównego usługi zostało wyłączone.
Więcej informacji
W niektórych przypadkach instancja SQL Server może wydawać się nieresponsywna. Jeśli zapytasz sys.dm_exec_requests dynamiczny widok zarządzania, zauważysz, że LogWriter wątek i inne wątki wykonujące operacje DML czekają w nieskończoność z WRITELOG wait_type. Inne sesje mogą również czekać, próbując zdobyć zamki.