Kısmen Kapsamlı Bir Veritabanına Geçiş

Şunlar için geçerlidir: SQL Server

Bu konu, kısmen kaplı veritabanı modeline geçiş için nasıl hazırlanacağını tartışır ve ardından göç adımlarını sunar.

Bir Veritabanı Taşımaya Hazırlanma

Kısmen içerili veritabanı modeline bir veritabanı taşımayı düşünürken aşağıdaki maddeleri gözden geçirin.

Kapsanan Veritabanlarını Etkinleştirme

Kapsanan veritabanları oluşturulmadan önce, kapsanan veritabanları özelliği SQL Server Veritabanı Altyapısı örneğinde etkinleştirilmelidir.

Kapsamlı Veritabanlarını Transact-SQL Kullanarak Etkinleştirmek

Aşağıdaki örnek, SQL Server Database Engine örneğinde içerili veritabanlarını etkinleştirir.

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

Management Studio kullanarak Kapsamlı Veritabanları Etkinleştirme

Aşağıdaki örnek, SQL Server Database Engine örneğinde içerili veritabanlarını etkinleştirir.

  1. Nesne Gezgini'da sunucu adına sağ tıklayın ve ardından Özellikler'e tıklayın.

  2. Gelişmiş sayfasında, Containment bölümünde, Enable Contained Databases seçeneğini True olarak ayarlayın.

  3. Tamam'ı seçin.

Bir veritabanını kısmen kapalı bir hale dönüştürmek

Bir veritabanı, CONTAINMENT seçeneği değiştirilerek kapalı veritabanına dönüştürülür.

Transact-SQL Kullanarak Bir Veritabanını Kısmen Kapsanan Hale Dönüştürme

Aşağıdaki örnek, adlandırılmış Accounting bir veritabanını kısmen içinde bulunan bir veritabanına dönüştürür.

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

Management Studio kullanarak bir veritabanını kısmen kapalı olarak dönüştürmek

Aşağıdaki örnek, bir veritabanını kısmen kapalı bir veritabanına dönüştürür.

  1. Nesne Gezgini'da Veritabanları'nı genişletin, dönüştürülecek veritabanına sağ tıklayın ve ardından Özellikler'e tıklayın.

  2. Seçenekler sayfasında, Kapsama türü seçeneğini Kısmi olarak değiştirin.

  3. Tamam'ı seçin.

Kullanıcıları Sınırlı Veritabanı Kullanıcılarına Taşımak

Aşağıdaki örnek, SQL Server girişlerine dayalı tüm kullanıcıları, şifreli içeren veritabanı kullanıcılarına taşımaktadır. Örnek, etkin olmayan girişleri hariç tutmaktadır. Örnek, içerdiği veritabanında çalıştırılmalıdır.

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 ;