共用方式為


建立資料庫結構描述

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的倉儲

本文描述如何使用 SQL Server Management Studio 或 Transact-SQL 以在 SQL Server 中建立結構描述。

權限

  • 若要建立架構,您必須擁有資料庫的 CREATE SCHEMA 許可權。

  • 若要指定其他使用者做為建立之結構描述的擁有者,呼叫者必須具有該使用者的 IMPERSONATE 權限。 如果將某個資料庫角色指定為擁有者,則呼叫者必須符合以下準則之一:具有該角色的成員資格或對該角色有 ALTER 權限。

使用 SQL Server Management Studio 建立結構描述

  1. 在 [物件總管] 中,展開 [資料庫] 資料夾。

  2. 打開要用來建立新資料庫結構描述的資料庫。

  3. 以滑鼠右鍵按一下 [安全性] 資料夾,指向 [新增],然後選取 [結構描述]。

  4. 在 [結構描述 - 新增] 對話方塊的 [一般] 頁面上,將新結構描述的名稱輸入 [結構描述名稱] 方塊中。

  5. [結構描述擁有者] 方塊中,輸入擁有結構描述之資料庫使用者或角色的名稱。 或者,選取 [搜尋] 開啟 [搜尋角色和使用者] 對話塊。

  6. 選擇 [確定]。

注意

如果對 Azure SQL DatabaseAzure Synapse Analytics 使用 SSMS 建立結構描述,則不會顯示對話方塊。 您將需要執行所產生的「建立結構描述範本 T-SQL 陳述式」。

[結構描述 - 新增] 對話塊也在其他兩個頁面上提供選項:[權限][擴充屬性]

  • [權限] 頁面列出所有可能的可保護對象,以及這些可保護對象可授予登入的權限。

  • [擴充屬性] 頁面讓您能夠將自訂屬性加入至資料庫使用者。

使用 Transact-SQL 建立結構描述

  1. 物件總管中,連線到一個資料庫引擎的實例。

  2. 在標準列上,選取 [新增查詢]

  3. 下例會建立名為 Chains 的結構描述,然後建立名為 Sizes 的資料表。

    CREATE SCHEMA Chains;
    
    GO
    
    CREATE TABLE Chains.Sizes
    (
        ChainID INT,
        width DECIMAL (10, 2)
    );
    
  4. 其他選項可在單一陳述式中執行。 下列範例會建立由 Joe 擁有且包含資料表 NineProngs 的結構 Sprockets。 陳述式授與 SELECTBob,拒絕 SELECTJohn

    CREATE SCHEMA Sprockets
        AUTHORIZATION Joe;
    GO
    
    CREATE TABLE NineProngs
    (
       source INT,
       cost INT,
       partnumber INT
    );
    GO
    
    GRANT SELECT
       ON SCHEMA::Sprockets TO Bob;
    GO
    
    DENY SELECT
       ON SCHEMA::Sprockets TO John;
    GO
    
  5. 執行下列陳述式,以檢視目前資料庫中的結構描述:

    SELECT *
    FROM sys.schemas;
    

限制與限制條件

  • 新結構描述的擁有者是下列資料庫層級主體之一:資料庫使用者、資料庫角色或應用程式角色。 在架構中建立的物件由架構的擁有者所擁有,且在 NULLprincipal_id 中具有 sys.objects。架構中物件的擁有權可以轉移給任何資料庫層級的主體,但架構擁有者始終保留對架構內物件的 CONTROL 權限。

  • 建立資料庫物件時,如果您將有效的網域主體 (使用者或群組) 指定為物件擁有者,即會將該網域主體新增至資料庫作為結構描述。 新的結構描述將由該網域主體所擁有。