Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
In diesem Thema wird beschrieben, wie die Umstellung auf das teilweise eigenständige Datenbankmodell vorbereitet wird. Anschließend werden die Migrationsschritte erläutert.
Vorbereiten auf das Migrieren einer Datenbank
Überprüfen Sie die folgenden Punkte, wenn Sie eine Datenbank zum teilweise eigenständigen Datenbankmodell migrieren möchten.
Sie sollten das teilweise enthaltene Datenbankmodell verstehen. Weitere Informationen finden Sie unter Contained Databases.
Sie müssen die Risiken verstehen, die mit teilweise eigenständigen Datenbanken verbunden sind. Weitere Informationen finden Sie unter Security Best Practices with Contained Databases.
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.
Überprüfen Sie die Liste der Datenbankfunktionen, die für teilweise eigenständige Datenbanken geändert werden. Weitere Informationen finden Sie unter Geänderte Funktionen (Contained Database).
Fragen Sie sys.dm_db_uncontained_entities (Transact-SQL) ab, um nicht enthaltene Objekte oder Funktionen in der Datenbank zu suchen. Weitere Informationen finden Sie 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–Datenbank-Engine-Instanz aktiviert sein, bevor sie erstellt werden können.
Aktivieren von enthaltenen Datenbanken mit Transact-SQL
Im folgenden Beispiel werden enthaltene Datenbanken auf der Instanz der SQL Server-Datenbank-Engine aktiviert.
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE ;
GO
Aktivieren von enthaltenen Datenbanken mit Management Studio
Im folgenden Beispiel werden enthaltene Datenbanken auf der Instanz der SQL Server-Datenbank-Engine aktiviert.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Servernamen, und klicken Sie auf Eigenschaften.
Legen Sie auf der Seite Erweitert im Abschnitt Eigenständigkeit die Option Eigenständige Datenbanken aktivieren auf True fest.
Wählen Sie OK aus.
Umwandeln 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 mithilfe von Transact-SQL
Im folgenden Beispiel wird die Datenbank Accounting zu einer teilweise enthaltenen Datenbank konvertiert.
USE [master]
GO
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL
GO
Konvertieren einer Datenbank in eine teilweise eigenständige Datenbank mit Management Studio
Im folgenden Beispiel wird eine Datenbank in eine teilweise enthaltene Datenbank umgewandelt.
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.
Wählen Sie OK aus.
Migrieren von Benutzern zu eigenständigen Datenbankbenutzern
Im folgenden Beispiel werden alle Benutzer, die auf SQL Server-Anmeldungen basieren, in eigenständige Datenbankbenutzer mit Kennwörtern migriert. Das Beispiel schließt Anmeldungen aus, 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
Eigenständige Datenbanken
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)