建立資料庫結構描述
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
本文描述如何使用 SQL Server Management Studio 或 Transact-SQL 以在 SQL Server 中建立結構描述。
限制事項
新結構描述的擁有者是下列資料庫層級主體之一:資料庫使用者、資料庫角色或應用程式角色。 在結構描述中建立的物件由結構描述擁有者擁有,其在 sys.objects 中具有 NULL principal_id。 結構描述包含物件的擁有權可以轉移到任何資料庫層級主體,但結構描述擁有者恆保有結構描述中物件的 CONTROL 權限。
建立資料庫物件時,如果您將有效的網域主體 (使用者或群組) 指定為物件擁有者,即會將該網域主體新增至資料庫作為結構描述。 新的結構描述將由該網域主體所擁有。
權限
需要資料庫的 CREATE SCHEMA 權限。
若要指定其他使用者做為建立之結構描述的擁有者,呼叫者必須具有該使用者的 IMPERSONATE 權限。 如果將資料庫角色指定為擁有者,則呼叫端必須符合下列準則之一:角色的成員資格或角色的 ALTER 權限。
使用 SQL Server Management Studio 建立結構描述
在 [物件總管] 中,展開 [資料庫] 資料夾。
展開要建立新資料庫結構描述的資料庫。
以滑鼠右鍵按一下 [安全性] 資料夾,指向 [新增],然後選取 [結構描述]。
在 [結構描述 - 新增] 對話方塊的 [一般] 頁面上,將新結構描述的名稱輸入 [結構描述名稱] 方塊中。
在 [結構描述擁有者] 方塊中,輸入擁有結構描述之資料庫使用者或角色的名稱。 或者,選取 [搜尋] 開啟 [搜尋角色和使用者] 對話塊。
選取 [確定]。
注意
如果對 Azure SQL Database 或 Azure Synapse Analytics 使用 SSMS 建立結構描述,則不會顯示對話方塊。 您將需要執行所產生的「建立結構描述範本 T-SQL 陳述式」。
其他選項
[結構描述 - 新增] 對話塊也在其他兩個頁面上提供選項:[權限] 和 [擴充屬性]。
[權限] 頁面列出所有可能的安全性實體以及可授與登入的安全性實體權限。
[擴充屬性] 頁面讓您能夠將自訂屬性加入至資料庫使用者。
使用 Transact-SQL 建立結構描述
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢]。
下例會建立名為
Chains
的結構描述,然後建立名為Sizes
的資料表。CREATE SCHEMA Chains; GO CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));
其他選項可在單一陳述式中執行。 下列範例會建立結構描述
Sprockets
,這是由包含資料表NineProngs
的Joe
所擁有。 陳述式授與SELECT
給Bob
,拒絕SELECT
給John
。CREATE SCHEMA Sprockets AUTHORIZATION Joe CREATE TABLE NineProngs (source int, cost int, partnumber int) GRANT SELECT ON SCHEMA::Sprockets TO Bob DENY SELECT ON SCHEMA::Sprockets TO John; GO
執行下列陳述式,以檢視目前資料庫中的結構描述:
SELECT * FROM sys.schemas;