SSMS 2016, Verfügbarkeitsgruppen, Datenbank ist Fehler verschlüsselt

7

Bei der Bewertung der Möglichkeit eines fortlaufenden Upgrades von SQL Server 2012-Instanzen, die AGs auf SQL Server 2016 hosten, sind wir auf ein seltsames Problem gestoßen, das nicht ganz sinnvoll ist. Eine der einfacheren Möglichkeiten zur Demonstration ist folgende:

Angenommen, Sie möchten der AG eine Datenbank hinzufügen (2012-Instanz wird verwendet). Der SSMS 2012- oder SSMS 2014-Assistent zeigt keine Überraschungen:

Geben Sie hier die Bildbeschreibung ein

SSMS 2016 erzählt jedoch eine ganz andere Geschichte:

Geben Sie hier die Bildbeschreibung ein

Für Datenbanken, die bereits Teil der AG sind, heißt es "Erfüllt nicht die Voraussetzungen" anstelle von "Bereits Teil ..." und für diejenigen, die nicht Teil der AG sind, heißt es "Passwort erforderlich" mit der folgenden Erklärung:

"Diese Datenbank wird mit dem Datenbankhauptschlüssel verschlüsselt. Sie müssen ein gültiges Kennwort angeben, wenn Sie es der Verfügbarkeitsgruppe hinzufügen."

Problem mit dieser Nachricht ist, dass keine der Datenbanken eine Verschlüsselung verwendet.

Das gleiche Problem tritt auf, wenn Sie die Datenbank aus der 2012 AG-Sicherung auf der 2016-Instanz wiederherstellen und versuchen, sie mithilfe des SSMS 2016-Assistenten zur 2016 AG hinzuzufügen.

Eternum
quelle
Ändern Sie beim Wiederherstellen der 2012 DB-Sicherung auf 2016 den Kompatibilitätsmodus auf 2016 oder belassen Sie ihn bei 2012? Ich habe dies beim Umgang mit SSISDB unter SQL 2014 mit SSMS 2016 gesehen. Mit SSISDB ist es ein bekanntes Problem mit SSMS 2016, dass Sie SSMS 2016 nur mit SSIS 2016 verwenden können. Frühere Versionen spielen nicht gut. Punkt 3 im folgenden Artikel: docs.microsoft.com/en-us/sql/ssms/…
Kris Gruttemeyer
Ich hatte das gleiche Problem und habe tsql verwendet, um dies anstelle der GUI einzurichten. Es hat gut funktioniert. Es gab keinen Hauptschlüssel, aber ich erhielt immer noch die gleiche Fehlermeldung.
SqlWorldWide
@Kris: Ich habe beide ausprobiert, macht keinen Unterschied.
Eternum
@ SQLWorldWide: Richtig, T-SQL funktioniert, das habe ich auch versucht. Was jedoch rätselhaft ist, ist, dass SSMS 2016 nach dem Hinzufügen einer Datenbank zur 2016-Instanz mithilfe von T-SQL die neu hinzugefügte Datenbank als "Erfüllt nicht die Voraussetzungen" anstelle von "Bereits Teil dieser Verfügbarkeitsgruppe" anzeigt. Irgendwas stimmt immer noch nicht. Die Frage ist - was?
Eternum
@Eternum "Bereits Teil dieser Verfügbarkeitsgruppe" in primär oder sekundär? Wird es in sys.databases angezeigt?
SqlWorldWide

Antworten:

9

Problem mit dieser Nachricht ist, dass keine der Datenbanken eine Verschlüsselung verwendet.

Das ist wahrscheinlich wahr :) Das sagt der Fehler jedoch nicht ...

"Diese Datenbank wird mit dem Datenbankhauptschlüssel verschlüsselt. Sie müssen ein gültiges Kennwort angeben, wenn Sie es der Verfügbarkeitsgruppe hinzufügen."

Der Fehler lautet im Klartext: Sie haben eine Datenbank, in der sich ein Datenbankhauptschlüssel befindet. Dieser Datenbankhauptschlüssel wird mit einem Kennwort verschlüsselt. Sie müssen mir dieses Passwort geben, damit ich alle Objekte entschlüsseln kann, die möglicherweise damit verschlüsselt werden.

Hier ist ein superschneller Repro, um Ihnen die "Nachricht" zu geben:

CREATE DATABASE PasswordTest;
GO

USE PasswordTest;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘$up3r$tr0ng
GO

SMSS sagt nicht, dass es die Datenbank nicht verwenden kann , sondern fragt nach dem Passwort, um den Hauptschlüssel zu öffnen.

Was ist das Problem?

Sie haben einige Möglichkeiten, aber hier sind die besten zwei:

  1. Klicken Sie rechts neben der Nachricht, Sie können das Passwort tatsächlich eingeben und der Assistent lässt Sie ohne Probleme fortfahren (da er jetzt den Hauptschlüssel öffnen kann).
  2. Wenn Sie den Hauptschlüssel nicht verwenden ... Lassen Sie ihn fallen .

Es stellte sich heraus, dass die Datenbank einen Hauptschlüssel hatte.

Ja, wie der Fehler angegeben hat. Das war kein Zweifel :)

Die Screenshots in meiner ersten Frage stammen aus derselben Instanz von 2012. Warum hat der SSMS 2012- und 2014-Assistent nichts über den Hauptschlüssel erwähnt, der SSMS 2016-Assistent jedoch?

Es wurde in SSMS 2016 hinzugefügt ... Sie sind sich nicht sicher, wonach Sie hier gesucht haben, da Elemente zu neuen Versionen hinzugefügt werden.

Außerdem hatte SSMS 2016 kein Bearbeitungsfeld zur Eingabe des Passworts.

Ich weiß nicht - arbeitet in meinem ...

Geben Sie hier die Bildbeschreibung ein

Ich weiß genau, worauf Sie sich beziehen, aber in meinem Fall gibt es nichts, nur leeren Raum unter der Spalte "Passwort", was zu Verwirrung geführt hat. Denken Sie, dass in SSMS 2016 möglicherweise ein Fehler vorliegt, oder haben Sie eine Erklärung für dieses Verhalten?

Siehe den Screenshot oben - ich denke, es funktioniert wie beabsichtigt, zumindest für mich ... Es ist vielleicht nicht intuitiv, aber es funktioniert.

Das Endergebnis ist das gleiche. Wenn Sie kein Fan der GUI sind, die Ihnen Kummer bereitet, gibt es immer PowerShell und T-SQL :) Wenn Sie der Meinung sind, dass dies nicht wie beabsichtigt funktioniert oder Sie es nicht mögen, würde ich Sie bitten, etwas zu posten Feedback zu Connect .

Sean Gallardy - Benutzer im Ruhestand
quelle
Vielen Dank für den ausführlichen Kommentar. Es stellte sich heraus, dass die Datenbank einen Hauptschlüssel hatte. Ich muss mich damit befassen und herausfinden, warum es dort war. Ich habe den Hauptschlüssel gelöscht und SSMS 2016 hat die Datenbank als "Erfüllt die Voraussetzungen" angezeigt. Dieser Teil ist also gelöst. Aber was mich immer noch wundert, ist das hier. Beide Screenshots in meiner ersten Frage stammen aus derselben Instanz von 2012. Warum hat der SSMS 2012- und 2014-Assistent nichts über den Hauptschlüssel erwähnt, der SSMS 2016-Assistent jedoch? Das hat mich hauptsächlich verwirrt. Außerdem hatte SSMS 2016 kein Bearbeitungsfeld zur Eingabe des Passworts.
Eternum
Ich weiß genau, worauf Sie sich beziehen, aber in meinem Fall gibt es nichts, nur leeren Raum unter der Spalte "Passwort", was zu Verwirrung geführt hat. Denken Sie, dass in SSMS 2016 möglicherweise ein Fehler vorliegt, oder haben Sie eine Erklärung für dieses Verhalten?
Eternum
@Eternum aktualisiert, um Ihre Kommentare widerzuspiegeln.
Sean Gallardy - Rentner
0

Ergänzung der Antwort von Sean Gallardy:

Klicken Sie rechts neben der Nachricht, Sie können das Passwort tatsächlich eingeben und der Assistent lässt Sie ohne Probleme fortfahren (da er jetzt den Hauptschlüssel öffnen kann).

(Gesichtspalme) ... Ja, Sie können auf den unsichtbaren Bereich rechts klicken und das Passwort eingeben ... ABER WARTEN ... Sie müssen an dieser Stelle auch auf die Schaltfläche "Aktualisieren" klicken ! (Benutzerfreundlichkeit fehlgeschlagen :)

ebol2000
quelle