创建数据库架构
本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中创建架构。
本主题内容
开始之前:
限制和局限
安全性
若要创建架构,可使用:
SQL Server Management Studio
Transact-SQL
开始之前
限制和局限
新架构由以下数据库级别主体之一拥有:数据库用户、数据库角色或应用程序角色。 在架构内创建的对象由架构所有者拥有,这些对象在 sys.objects 中的 principal_id 为 NULL。 架构所包含对象的所有权可转让给任何数据库级主体,但架构所有者始终保留对该架构内对象的 CONTROL 权限。
在创建数据库对象时,如果您将某一有效的域主体(用户或组)指定为对象所有者,则该域主体将作为架构添加到数据库中。 这个新架构将为该域主体所拥有。
安全性
权限
需要对数据库具有 CREATE SCHEMA 权限。
若要指定其他用户作为所创建架构的所有者,则调用方必须具有对该用户的 IMPERSONATE 权限。 如果指定一个数据库角色作为所有者,则调用方必须拥有该角色的成员身份或对该角色拥有 ALTER 权限。
[返回页首]
使用 SQL Server Management Studio
创建架构
在对象资源管理器中,展开**“数据库”**文件夹。
展开要在其中创建新数据库架构的数据库。
右键单击**“安全性”文件夹,指向“新建”,并选择“架构”**。
在**“架构 - 新建”对话框中的“常规”页上,在“架构名称”**框中输入新架构的名称。
在**“架构所有者”框中,输入要拥有该架构的数据库用户或角色的名称。 或者,单击“搜索”以打开“搜索角色和用户”**对话框。
单击“确定”。
其他选项
“架构– 新建”对话框还在两个其他页上提供了选项:“权限”和“扩展属性”。
**“权限”**页将列出所有可能的安全对象以及可授予登录名的针对这些安全对象的权限。
**“扩展属性”**页允许您向数据库用户添加自定义属性。
[返回页首]
使用 Transact-SQL
创建架构
在**“对象资源管理器”**中,连接到数据库引擎实例。
在标准菜单栏上,单击**“新建查询”**。
将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。
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)。
[返回页首]