Sql server 2012 创建数据库架构

来源:互联网 发布:2016淘宝客推广技巧 编辑:程序博客网 时间:2024/05/22 06:59

创建数据库架构“Sprockets ”, 拥有者Annik ,该架构下有一表“NineProngs”。

授权select 给Mandar, 而Prasanna被限制select 权限。 t-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


MSDN:

限制和局限

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

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

安全性

权限

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

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

http://msdn.microsoft.com/zh-cn/library/dd207005.aspx

0 0