创建数据库架构

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中创建架构。

本主题内容

在您开始之前

局限性与限制

  • 新架构由以下数据库级别主体之一拥有:数据库用户、数据库角色或应用程序角色。 在架构中创建的对象由架构的所有者拥有,并在 sys.objects 中具有 NULL principal_id。 架构包含对象的所有权可以传输到任何数据库级主体,但架构所有者始终保留对架构中对象的 CONTROL 权限。

  • 创建数据库对象时,如果将有效的域主体(用户或组)指定为对象所有者,则域主体将作为架构添加到数据库。 新架构将由该域主体拥有。

安全

权限

  • 需要对数据库具有 CREATE SCHEMA 权限。

  • 若要指定其他用户作为所创建架构的所有者,则调用方必须具有对该用户的 IMPERSONATE 权限。 如果将数据库角色指定为所有者,则调用方必须具备以下之一:角色的成员身份或对角色的 ALTER 权限。

使用 SQL Server Management Studio

创建架构
  1. 在对象资源管理器中,展开 “数据库” 文件夹。

  2. 展开要在其中创建新数据库架构的数据库。

  3. 右键单击“安全性”文件夹,指向“新建”,并选择“架构”

  4. 在“架构 - 新建”对话框中的“常规”页上,在“架构名称”框中输入新架构的名称

  5. “架构所有者” 框中,输入要拥有该架构的数据库用户或角色的名称。 或者,单击“ 搜索 ”以打开 “搜索角色和用户 ”对话框。

  6. 单击 “确定”

其他选项

架构 - 新建 ”对话框还提供两个附加页面上的选项: “权限 ”和 “扩展属性”。

  • “权限” 页将列出所有可能的安全对象以及可授予登录名的针对这些安全对象的权限。

  • “扩展属性”页允许您向数据库用户添加自定义属性。

使用 Transact-SQL

创建架构

  1. “对象资源管理器” 中,连接到某个数据库引擎实例。

  2. 在标准栏上,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行

    USE AdventureWorks2012;  
    GO  
    -- Creates the schema Sprockets owned by Annik that contains table NineProngs.   
    -- The statement grants SELECT to Mandar and denies SELECT to Prasanna.  
    
    CREATE SCHEMA Sprockets AUTHORIZATION Annik  
        CREATE TABLE NineProngs (source int, cost int, partnumber int)  
        GRANT SELECT ON SCHEMA::Sprockets TO Mandar  
        DENY SELECT ON SCHEMA::Sprockets TO Prasanna;  
    GO  
    

有关详细信息,请参阅 CREATE SCHEMA (Transact-SQL)