Freigeben über


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.

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.

  2. Legen Sie auf der Seite Erweitert im Abschnitt Kapselung die Option Enthaltene Datenbanken aktivieren auf True fest.

  3. 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.

  1. Erweitern Sie im Objekt-Explorer Datenbanken, klicken Sie mit der rechten Maustaste auf die zu konvertierende Datenbank, und klicken Sie anschließend auf Eigenschaften.

  2. Ändern Sie auf der Seite Optionen die Option Kapselungstyp in Teilweise.

  3. 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)

Konzepte

Enthaltene Datenbank