Freigeben über


Migrieren zu einer teilweise eigenständigen Datenbank

In diesem Thema wird erläutert, wie Sie sich auf den Übergang zum Modell der teilweise enthaltenen Datenbank vorbereiten und die Migrationsschritte durchführen.

In diesem Thema:

Vorbereiten der Migration einer Datenbank

Überprüfen Sie die folgenden Elemente, wenn Sie die Migration einer Datenbank in das teilweise enthaltene Datenbankmodell in Erwägung ziehen.

  • Sie sollten das teilweise enthaltene Datenbankmodell verstehen. Weitere Informationen finden Sie unter Contained Databases.

  • Sie sollten die Risiken verstehen, die für teilweise isolierte Datenbanken einzigartig sind. Weitere Informationen finden Sie unter Security Best Practices with Contained Databases.

  • Enthaltene Datenbanken unterstützen keine Replikation, Änderungsdatenerfassung oder Änderungsnachverfolgung. Bestätigen Sie, dass die Datenbank diese Features nicht verwendet.

  • Überprüfen Sie die Liste der Datenbankfeatures, die für teilweise enthaltene Datenbanken geändert werden. Weitere Informationen finden Sie unter "Geänderte Features "Enthaltene Datenbank".

  • Fragen Sie sys.dm_db_uncontained_entities (Transact-SQL) ab, um nicht enthaltene Objekte oder Features in der Datenbank zu finden. Weitere Informationen finden Sie unter.

  • Überwachen Sie die database_uncontained_usage XEvent, um festzustellen, wann nicht enthaltene Features verwendet werden.

Enthaltene Datenbanken aktivieren

Enthaltene Datenbanken müssen für die Instanz des SQL Server-Datenbankmoduls aktiviert sein, bevor enthaltene Datenbanken erstellt werden können.

Aktivieren von enthaltenen Datenbanken mithilfe von Transact-SQL

Im folgenden Beispiel werden enthaltene Datenbanken in der Instanz des SQL Server-Datenbankmoduls aktiviert.

sp_configure 'contained database authentication', 1;  
GO  
RECONFIGURE ;  
GO  

Aktivieren von enthaltenen Datenbanken mithilfe von Management Studio

Im folgenden Beispiel werden enthaltene Datenbanken in der Instanz des SQL Server-Datenbankmoduls aktiviert.

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

  2. Stellen Sie auf der Erweitert-Seite im Abschnitt Eindämmung die Option Enthaltene Datenbanken aktivieren auf True ein.

  3. Klicke auf OK.

Konvertieren einer Datenbank in eine teilweise enthaltene

Eine Datenbank wird durch Ändern der CONTAINMENT-Option in eine enthaltene Datenbank konvertiert.

Umwandeln einer Datenbank in eine teilweise enthaltene Datenbank mit Transact-SQL

Im folgenden Beispiel wird die Datenbank mit dem Namen Accounting in eine teilweise enthaltene Datenbank konvertiert.

USE [master]  
GO  
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL  
GO  

Konvertieren einer Datenbank in eine teilweise enthaltene mit Management Studio.

Im folgenden Beispiel wird eine Datenbank in eine teilweise enthaltene Datenbank konvertiert.

  1. Erweitern Sie im Objekt-Explorer Datenbanken, klicken Sie mit der rechten Maustaste auf die Zu konvertierende Datenbank, und klicken Sie dann auf Eigenschaften.

  2. Ändern Sie auf der Optionen-Seite die Einschränkungstyp-Option auf Teilweise.

  3. Klicke auf OK.

Migrieren von Benutzern zu enthaltenen Datenbankbenutzern

Im folgenden Beispiel werden alle Benutzer, die auf SQL Server-Anmeldungen basieren, in Benutzer enthaltener Datenbanken 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)