移轉至部分自主資料庫

此主題討論如何準備變更為部分自主資料庫模型,然後提供移轉步驟。

本主題內容:

  • 準備移轉資料庫

  • 啟用部分自主資料庫

  • 將資料庫轉換成部分自主資料庫

  • 將使用者移轉至自主資料庫使用者

準備移轉資料庫

當您考慮將資料庫移轉至部分自主資料庫模型時,請檢閱下列項目。

  • 您應該了解部分自主資料庫模型。 如需詳細資訊,請參閱<自主資料庫>。

  • 您應該了解部分自主資料庫獨有的風險。 如需詳細資訊,請參閱<自主資料庫的安全性最佳做法>。

  • 自主資料庫不支援複寫、異動資料擷取,或變更追蹤。 請確認資料庫不會使用這些功能。

  • 請檢閱針對部分自主資料庫修改的資料庫功能清單。 如需詳細資訊,請參閱<修改的功能 (自主資料庫)>。

  • 請查詢 sys.dm_db_uncontained_entities (Transact-SQL) 來尋找資料庫中未內含性物件或功能。 如需詳細資訊,請參閱

  • 請監視 database_uncontained_usage XEvent 來查看使用未內含性功能的時間。

啟用自主資料庫

您必須先在 SQL Server Database Engine 執行個體上啟用自主資料庫,然後才能建立自主資料庫。

使用 Transact-SQL 來啟用自主資料庫

下列範例會在 SQL Server Database Engine 執行個體上啟用自主資料庫。

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

使用 Management Studio 來啟用自主資料庫

下列範例會在 SQL Server Database Engine 執行個體上啟用自主資料庫。

  1. 在 [物件總管] 中,以滑鼠右鍵按一下伺服器名稱,然後按一下 [屬性]

  2. [進階] 頁面的 [內含項目] 區段中,將 [啟用自主資料庫] 選項設定為 [True]

  3. 按一下 [確定]。

將資料庫轉換成部分自主資料庫

您可以透過變更 CONTAINMENT 選項,將資料庫轉換成自主資料庫。

使用 Transact-SQL,將資料庫轉換成部分自主資料庫

下列範例會將名為 Accounting 的資料庫轉換成部分自主資料庫。

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

使用 Management Studio,將資料庫轉換成部分自主資料庫

下列範例會將資料庫轉換成部分自主資料庫。

  1. 在 [物件總管] 中,展開 [資料庫]、以滑鼠右鍵按一下要轉換的資料庫,然後按一下 [屬性]

  2. [選項] 頁面上,將 [內含項目類型] 選項變更為 [部分]

  3. 按一下 [確定]。

將使用者移轉至自主資料庫使用者

下列範例會將以 SQL Server 登入為基礎的所有使用者移轉至具有密碼之自主資料庫使用者。 此範例會排除未啟用的登入。 您必須在自主資料庫中執行此範例。

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 ;

請參閱

參考

sp_migrate_user_to_contained (Transact-SQL)

sys.dm_db_uncontained_entities (Transact-SQL)

概念

自主資料庫