Freigeben über


Migrieren zu einer partiell eigenständigen Datenbank

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.

In diesem Thema:

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

  • 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 (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 für die SQL Server-Datenbank-Engine-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-Datenbank-Engine-Instanz aktiviert.

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Servernamen, und klicken Sie auf Eigenschaften.

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

  3. Wählen Sie OK aus.

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. Wählen Sie OK aus.

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 ;  

Weitere Informationen

Eigenständige Datenbanken
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)