Dela via


Migrera till en delvis innesluten databas

gäller för:SQL Server

Det här avsnittet beskriver hur du förbereder för att ändra till den delvis inneslutna databasmodellen och tillhandahåller sedan migreringsstegen.

I det här avsnittet:

Förbereder migrering av en databas

Granska följande objekt när du överväger att migrera en databas till den delvis inneslutna databasmodellen.

  • Du bör förstå den delvis inneslutna databasmodellen. Mer information finns i Inneslutna databaser.

  • Du bör förstå risker som är unika för delvis inneslutna databaser. Mer information finns i bästa praxis för säkerhet med inneslutna databaser.

  • Inneslutna databaser stöder inte replikering, insamling av ändringsdata eller ändringsspårning. Bekräfta att databasen inte använder de här funktionerna.

  • Granska listan över databasfunktioner som har ändrats för delvis inneslutna databaser. Mer information finns i Ändrade funktioner (innesluten databas).

  • Fråga sys.dm_db_uncontained_entities (Transact-SQL) för att hitta icke-innehållna objekt eller funktioner i databasen. För mer information, se.

  • Övervaka database_uncontained_usage XEvent för att se när okontrollerade funktioner används.

Aktivera inneslutna databaser

Inneslutna databaser måste vara aktiverade på instansen av SQL Server Database Engine innan inneslutna databaser kan skapas.

Aktivera inneslutna databaser med hjälp av Transact-SQL

I följande exempel aktiveras inneslutna databaser på instansen av SQL Server Database Engine.

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

Aktivera inneslutna databaser med Hjälp av Management Studio

I följande exempel aktiveras inneslutna databaser på instansen av SQL Server Database Engine.

  1. Högerklicka på servernamnet i Object Explorer och klicka sedan på Egenskaper.

  2. På sidan Avancerat i avsnittet Containment anger du alternativet Aktivera inneslutna databaser till True.

  3. Välj OK.

Konvertera en databas till delvis innesluten

En databas konverteras till en innesluten databas genom att alternativet CONTAINMENT ändras.

Konvertera en databas till delvis innesluten med hjälp av Transact-SQL

I följande exempel konverteras en databas med namnet Accounting till en delvis innesluten databas.

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

Konvertera en databas till delvis innesluten med hjälp av Management Studio

I följande exempel konverteras en databas till en delvis innesluten databas.

  1. I Object Explorer expanderar du Databaser, högerklickar på databasen som ska konverteras och klickar sedan på Egenskaper.

  2. På sidan Alternativ ändrar du alternativet inneslutningstyp till Partiell.

  3. Välj OK.

Migrera användare till begränsade databasanvändare

I följande exempel migreras alla användare som baseras på SQL Server-inloggningar till oberoende databasanvändare med lösenord. Exemplet exkluderar inloggningar som inte är aktiverade. Exemplet måste köras i den inneslutna databasen.

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 ;  

Se även

inneslutna databaser
sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)