Bermigrasi ke Database yang Sebagian Berisi

Berlaku untuk:SQL Server

Topik ini membahas cara mempersiapkan perubahan ke model database yang sebagian berisi lalu menyediakan langkah-langkah migrasi.

Dalam topik ini:

Bersiap untuk Memigrasikan Database

Tinjau item berikut saat mempertimbangkan untuk memigrasikan database ke model database yang sebagian berisi.

  • Anda harus memahami model database yang sebagian berisi. Untuk informasi selengkapnya, lihat Database Terkandung.

  • Anda harus memahami risiko yang unik untuk database yang sebagian berisi. Untuk informasi selengkapnya, lihat Praktik Terbaik Keamanan dengan Database Terkandung.

  • Database mandiri tidak mendukung replikasi, mengubah penangkapan data, atau pelacakan perubahan. Konfirmasikan database tidak menggunakan fitur-fitur ini.

  • Tinjau daftar fitur database yang dimodifikasi untuk database yang sebagian berisi. Untuk informasi selengkapnya, lihat Fitur yang Dimodifikasi (Database Terkandung).

  • Kueri sys.dm_db_uncontained_entities (Transact-SQL) untuk menemukan objek atau fitur yang tidak terkontainer dalam database. Untuk informasi selengkapnya, lihat.

  • Pantau database_uncontained_usage XEvent untuk melihat kapan fitur yang tidak dikontainasi digunakan.

Aktifkan Database Terkandung

Database mandiri harus diaktifkan pada instans Mesin Database SQL Server, sebelum database yang terkandung dapat dibuat.

Mengaktifkan Database Terkandung Menggunakan Transact-SQL

Contoh berikut mengaktifkan database yang terkandung pada instans Mesin Database SQL Server.

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

Mengaktifkan Database Termuat Menggunakan Management Studio

Contoh berikut mengaktifkan database yang terkandung pada instans Mesin Database SQL Server.

  1. Di Object Explorer, klik kanan nama server, lalu klik Properti.

  2. Pada halaman Tingkat Lanjut , di bagian Penampungan , atur opsi Aktifkan Database Terkandung ke True.

  3. PilihOK.

Mengonversi Database menjadi Sebagian Terkandung

Database dikonversi ke database mandiri dengan mengubah opsi CONTAINMENT .

Mengonversi Database ke Sebagian Terkandung Menggunakan Transact-SQL

Contoh berikut mengonversi database bernama Accounting menjadi database yang sebagian berisi.

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

Mengonversi Database menjadi Sebagian terkandung Menggunakan Management Studio

Contoh berikut mengonversi database menjadi database yang sebagian berisi.

  1. Di Object Explorer, perluas Database, klik kanan database yang akan dikonversi, lalu klik Properti.

  2. Pada halaman Opsi , ubah opsi Jenis penahanan menjadi Parsial.

  3. PilihOK.

Memigrasikan Pengguna ke Pengguna Database Mandiri

Contoh berikut memigrasikan semua pengguna yang didasarkan pada login SQL Server ke pengguna database mandiri dengan kata sandi. Contoh mengecualikan login yang tidak diaktifkan. Contoh harus dijalankan dalam database yang terkandung.

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 ;  

Lihat Juga

Database Terkandung
sp_migrate_user_to_contained (T-SQL)
sys.dm_db_uncontained_entities (T-SQL)