簡體   English   中英

完全包含的數據庫和 Azure SQL 單一數據庫有什么區別

[英]What is the difference between a fully contained database & Azure SQL Single database

當一個數據庫被完全包含時,它擁有數據庫邊界內的所有對象。 它也在數據庫級別管理連接。 包含的數據庫

我有幾個問題:

  • 如果我在 Azure SQL 單一數據庫中托管一個包含的數據庫,那么 Azure SQL 單一數據庫和作為 Azure SQL 單一數據庫的包含數據庫之間有什么區別?

  • 為什么我們有一個單獨的產品作為 Azure SQL Single Db,當包含的數據庫也類似於它時?

  • 將數據庫作為包含數據庫是否有助於更輕松地遷移到 Azure SQL 單數據庫?

在 Azure 中,“單一”是一種部署選項,它將 Azure SQL 數據庫與托管和彈性池區分開來。 從遏制的角度來看確實沒有區別,因為 Single 和 Azure SQL 數據庫是一回事。

Azure SQL 數據庫本身提供了包含數據庫級用戶身份驗證等功能。 對於本地 SQL Server 數據庫,必須選擇CONTAINMENT=PARTIAL以允許數據庫級身份驗證。

將數據庫作為包含數據庫是否有助於更輕松地遷移到 Azure SQL 單數據庫?

CONTAINMENT=PARTIAL允許在本地版本中進行數據庫級身份驗證,從而促進數據庫安全主體的遷移。 只要用戶數據庫實體保持在數據庫邊界內並且不需要包含數據庫(例如 CDC)中不可用的功能,遷移通常很容易。

但是,需要注意的是,部分包含的數據庫隱式使用目錄排序Latin1_General_100_CI_AS_KS_WS_SC而 Azure SQL 數據庫目錄排序規則必須是所選的DATABASE_DEFAULT排序SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS 這通常只有在需要區分大小寫的對象/變量名稱時才會出現。

可以通過查詢sys.dm_db_uncontained_entities來識別現有的未包含引用:

SELECT * FROM sys.dm_db_uncontained_entities;

上述查詢還將識別需要手動檢查的動態 SQL 引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM