Migrate to a Partially Contained Database
適用於:SQL Server
此主題討論如何準備變更為部分自主資料庫模型,然後提供移轉步驟。
本主題內容:
準備移轉資料庫
當您考慮將資料庫移轉至部分自主資料庫模型時,請檢閱下列項目。
您應該了解部分自主資料庫模型。 如需相關資訊,請參閱 自主資料庫。
您應該了解部分自主資料庫獨有的風險。 如需詳細資訊,請參閱 Security Best Practices with Contained Databases。
自主資料庫不支援複寫、異動資料擷取,或變更追蹤。 請確認資料庫不會使用這些功能。
請檢閱針對部分自主資料庫修改的資料庫功能清單。 如需詳細資訊,請參閱修改的功能 (自主資料庫)。
請查詢 sys.dm_db_uncontained_entities (Transact-SQL) 來尋找資料庫中的非內含性物件或功能。 如需詳細資訊,請參閱。
請監視 database_uncontained_usage XEvent 來查看使用非內含性功能的時間。
啟用自主資料庫
您必須先在 SQL Server 資料庫引擎執行個體上啟用自主資料庫,然後才能建立自主資料庫。
使用 Transact-SQL 來啟用自主資料庫
下列範例會在 SQL Server 資料庫引擎的執行個體上啟用自主資料庫。
sp_configure 'contained database authentication', 1;
GO
RECONFIGURE ;
GO
使用 Management Studio 來啟用自主資料庫
下列範例會在 SQL Server 資料庫引擎的執行個體上啟用自主資料庫。
在物件總管中,以滑鼠右鍵按一下伺服器名稱,然後按一下 [屬性]。
在 [進階] 頁面的 [內含項目] 區段中,將 [啟用自主資料庫] 選項設定為 [True]。
選取 [確定]。
將資料庫轉換成部分自主資料庫
您可以透過變更 [內含項目] 選項,將資料庫轉換成自主資料庫。
使用 Transact-SQL,將資料庫轉換成部分自主資料庫
下列範例會將名為 Accounting
的資料庫轉換成部分自主資料庫。
USE [master]
GO
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL
GO
使用 Management Studio,將資料庫轉換成部分自主資料庫
下列範例會將資料庫轉換成部分自主資料庫。
在物件總管中,展開 [資料庫],以滑鼠右鍵按一下要轉換的資料庫,然後按一下 [屬性]。
在 [選項] 頁面上,將 [內含項目類型] 選項變更為 [部分]。
選取 [確定]。
將使用者移轉至自主資料庫使用者
下列範例會將以 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)