Migrieren zu einer partiell eigenständigen Datenbank
In diesem Thema wird beschrieben, wie die Umstellung auf das teilweise eigenständige Datenbankmodell vorbereitet wird. Anschließend werden die Migrationsschritte erläutert.
In diesem Thema:
Vorbereiten auf das Migrieren einer Datenbank
Aktivieren von teilweise eigenständigen Datenbanken
Konvertieren einer Datenbank in eine teilweise eigenständige Datenbank
Migrieren von Benutzern zu Benutzern eigenständiger Datenbanken
Vorbereiten auf das Migrieren einer Datenbank
Überprüfen Sie die folgenden Punkte, wenn Sie eine Datenbank zum teilweise eigenständigen Datenbankmodell migrieren möchten.
Machen Sie sich mit dem teilweise eigenständigen Datenbankmodell vertraut. Weitere Informationen finden Sie unter Enthaltene Datenbank.
Sie müssen die Risiken verstehen, die mit teilweise eigenständigen Datenbanken verbunden sind. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit eigenständiger Datenbanken.
Enthaltene Datenbanken unterstützen weder die Replikation, noch das Aufzeichnen oder das Nachverfolgen von Änderungsdaten. Vergewissern Sie sich, dass diese Funktionen für die Datenbank nicht verwendet werden.
Sehen Sie die Liste der Datenbankfunktionen ein, die für teilweise eigenständige Datenbanken geändert werden. Weitere Informationen finden Sie unter Geänderte Funktionen (Enthaltene Datenbank).
Fragen Sie sys.dm_db_uncontained_entities (Transact-SQL) ab, um nicht enthaltene Objekte oder Funktionen in der Datenbank zu bestimmen. Weitere Informationen finden Sie weiter oben unter
Überwachen Sie das database_uncontained_usage-XEvent, um festzustellen, ob nicht enthaltene Funktionen verwendet werden.
Aktivieren enthaltener Datenbanken
Enthaltene Datenbanken müssen für die SQL Server Database Engine (Datenbankmodul)-Instanz aktiviert sein, bevor sie erstellt werden können.
Aktivieren von enthaltenen Datenbanken mit Transact-SQL
Im folgenden Beispiel werden enthaltene Datenbanken für die SQL Server Database Engine (Datenbankmodul)-Instanz aktiviert.
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE ;
GO
Aktivieren von enthaltenen Datenbanken mit Management Studio
Im folgenden Beispiel werden enthaltene Datenbanken für die SQL Server Database Engine (Datenbankmodul)-Instanz aktiviert.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.
Legen Sie auf der Seite Erweitert im Abschnitt Kapselung die Option Enthaltene Datenbanken aktivieren auf True fest.
Klicken Sie auf OK.
Konvertieren einer Datenbank in eine teilweise eigenständige Datenbank
Eine Datenbank wird in eine enthaltene Datenbank konvertiert, indem die CONTAINMENT-Option geändert wird.
Konvertieren einer Datenbank in eine teilweise eigenständige Datenbank mit Transact-SQL
Im folgenden Beispiel wird die Datenbank Accounting in eine teilweise eigenständige Datenbank konvertiert.
USE [master]
GO
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL
GO
Konvertieren einer Datenbank in die teilweise eigenständige Datenbank mit Management Studio
Im folgenden Beispiel wird die Datenbank in eine teilweise eigenständige Datenbank konvertiert.
Erweitern Sie im Objekt-Explorer Datenbanken, klicken Sie mit der rechten Maustaste auf die zu konvertierende Datenbank, und klicken Sie anschließend auf Eigenschaften.
Ändern Sie auf der Seite Optionen die Option Kapselungstyp in Teilweise.
Klicken Sie auf OK.
Migrieren von Benutzern zu Benutzern eigenständiger Datenbanken
Im folgenden Beispiel werden alle Benutzer, die auf SQL Server-Anmeldungen basieren, in Benutzer enthaltener Datenbanken mit Kennwörtern migriert. Nicht berücksichtigt werden Anmeldungen, die nicht aktiviert sind. Das Beispiel muss in der enthaltenen Datenbank ausgeführt werden.
DECLARE @username sysname ;
DECLARE user_cursor CURSOR
FOR
SELECT dp.name
FROM sys.database_principals AS dp
JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE dp.authentication_type = 1 AND sp.is_disabled = 0;
OPEN user_cursor
FETCH NEXT FROM user_cursor INTO @username
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_migrate_user_to_contained
@username = @username,
@rename = N'keep_name',
@disablelogin = N'disable_login';
FETCH NEXT FROM user_cursor INTO @username
END
CLOSE user_cursor ;
DEALLOCATE user_cursor ;
Siehe auch
Verweis
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)