架构特点:

架构是数据库级的安全对象,是数据库中表、视图、存储过程等对象的容器,是形成单个命名空间的数据库实体的集合,一个架构只能有一个拥有者。

将所有权与架构分离的意义:

①架构所有权和架构范围内的安全对象可以转移,对象可以在架构之间转移

②一个用户可以拥有多个架构,多个数据库用户可以使用同一个默认架构

③使用架构,使得对架构和架构中对象的权限管理更加精细,用户在对架构对象进行操作时,不仅需要获得对对象操作的权限,还要获得对架构的操作权限

④架构可以由任何数据库主体拥有,如角色和应用程序角色等。可以删除数据库用户而不删除相应架构中的对象,删除用户并不会造成对架构和架构中对象的影响

架构管理

一、CREATE SCHEMA--------------------------------创建架构

CREATE SCHEMA <架构名子句> [<架构元素>[,.........n]]

<架构名子句>::={架构名|AUTHORIZATION  所有者名 |架构名 AUTHORIZATION 所有者名}

<架构元素>::={表定义语句|视图定义语句|授权语句|撤销授权语句|禁止授权语句}

注意:

①AUTHORIZATION指定数据库级别的主体(数据库用户,数据库角色,应用程序角色)作为架构拥有者,在架构内创建的对象由架构所有者拥有。架构所包含对象的所有权可转让给任何数据库级别的主体,但架构所有者始终保留对此架构内对象的CONTROL权限,若CREATE SCHEMA中未指定所有者,则由当前用户作为所有者。

②当前支持不指定架构名称的 CREATE SCHEMA 语句,目的是为了向后兼容。此类语句并不在数据库中实际创建架构,但它们会创建表和视图,并授予权限。主体不需要 CREATE SCHEMA 权限来执行这一早期形式的 CREATE SCHEMA,因为不会创建任何架构。在 SQL Server 的未来版本中将删除此功能。

③授权语句GRANT指定可对除新架构外的任何安全对象授予权限的 GRANT 语句。

撤销授权语句REVOKE指定可对除新架构外的任何安全对象撤消权限的 REVOKE 语句。

禁止授权语句DENY指定可对除新架构外的任何安全对象拒绝授予权限的 DENY 语句。

④CREATE SCHEMA 可以在单条语句中创建架构以及该架构所包含的表和视图,并授予对任何安全对象的 GRANT、REVOKE 或 DENY 权限。此语句必须作为一个单独的批处理执行。CREATE SCHEMA 语句所创建的对象将在要创建的架构内进行创建。

⑤GRANT 语句可以在创建某个对象自身之前对该对象授予权限,CREATE VIEW 语句也可以出现在创建该视图所引用表的 CREATE TABLE 语句之前。同样,CREATE TABLE 语句可以在 CREATE SCHEMA 语句定义表之前声明表的外键。

⑥支持在 CREATE SCHEMA 语句中使用 DENY 和 REVOKE。DENY 和 REVOKE 子句将按照它们在 CREATE SCHEMA 语句中出现的顺序执行。

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

例如:

下面的示例将创建由 Annik 拥有的、包含表 NineProngs 的 Sprockets 架构。该语句向 Mandar 授予 SELECT 权限,而对 Prasanna 拒绝授予 SELECT 权限。请注意,Sprockets 和 NineProngs 在一个语句中创建。

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;

二、ALTER SCHEMA---------------------修改架构

ALTER SCHEMA 目标架构名 TRANSFER 原架构名.对象名

说明:修改架构即将架构中的对象转移到其他架构中,修改架构不会改变架构中的对象,但与该对象相关联的所有权限都被删除

如:ALTER SCHEMA S_YX TRANSFER DBO.T1

三、DROP SCHEMA------------------------删除架构

DROP SCHEMA 架构名

注意:只有当架构中不在包含对象时,才可以删除该架构。

四、ALTER AUTHORIZATION------------修改架构所有者

ALTER AUTHORIZATON ON [<实体类型>::] 实体名 TO {schema owner|主体名}

对象类型::={SCHEMA|ROLE|DATABASE...........}

ALTER AUTHORIZATION 不进可以修改架构所有者,也可以修改其他类型所有者

如:ALTER AUTHORIZATION ON SCHEMA::S_TY  TO DBO

转载于:https://www.cnblogs.com/beyourself/archive/2013/01/31/2886884.html

SQL SERVER 架构管理相关推荐

  1. sql server 架构_在SQL Server中引入架构文档

    sql server 架构 描述 (Description) We often have a need to view object definitions in SQL Server, whethe ...

  2. sql azure 语法_Azure Data Studio中SQL Server架构比较扩展

    sql azure 语法 This article explores the SQL Server Schema Compare extension in the Azure Data Studio. ...

  3. 如何配置SQL Server 2008管理器_过路老熊_新浪博客

    SQl Server 配置管理器(简称为配置管理器)包含了SQL Server 2008服务.SQL Server 2008网络配置和SQL Native Client配置3个工具,供数据库管理人员做 ...

  4. SQL Server索引管理之六大铁律

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

  5. [网络广播] SQL Server 主数据管理结合 BizTalk Server SOA 架构实现保险行业 ECIF 解决方案

    时间:2011-11-17 难度:200 讲师:徐悦 内容介绍 几乎所有的全球性公司都面临越来越多的挑战,即如何准确管理与汇报重要的商务信息.企业兼并和收购时加重了系统的多样性.组织之间的自动化通讯工 ...

  6. [网络广播] SQL Server 主数据管理结合 BizTalk Server SOA 架构实现保险行业 ECIF 解决方案...

    时间:2011-11-17 难度:200 讲师:徐悦 内容介绍 几乎所有的全球性公司都面临越来越多的挑战,即如何准确管理与汇报重要的商务信息.企业兼并和收购时加重了系统的多样性.组织之间的自动化通讯工 ...

  7. SQL Server 权限管理

    概述 对数据库系统而言,保证数据的安全性永远都是最重要的问题之一.一个好的数据库环境,必须明确每个用户的职责,并分配其对应的权限.同时出现问题了也可以找到根源. 你是否会有这样的需求: 给某个用户查询 ...

  8. Ms Sql Server 基本管理脚本(1)

    /* *登录帐户管理 */ --授予Windows账号test访问数据库的权限 exec sp_grantlogin 'teacher-jin\test' --拒绝Windows账号test访问数据库 ...

  9. sql server web管理软件

    Sql server目前虽然没有mysql用户量大,但是微软的产品在易用性方面还是很不错的,有些政务类的项目还是用 Sql server数据库的, 目前有一款Sql server的web管理工具Tre ...

最新文章

  1. SourceTree 3.0.17如何跳过注册进行安装? — git图形化工具(一)
  2. python如何让用户输入文件名并打开文件_(Python)如何让用户打开文本文件然后更改整数/数字...
  3. 动态栈Stack的C语言实现
  4. kbmmw 5.06.00 beta 发布
  5. 【渝粤教育】国家开放大学2018年秋季 1166t汉语通论 参考试题
  6. python3.0程序实例_Python3 编程第一步
  7. 提高虚拟机运行速度方法
  8. 无序数组求第K大/第K小的数
  9. .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列
  10. jquery的ajax查询数据库,jquery中使用ajax获取远程页面信息
  11. 日语开发java自我介绍,优秀日语自我介绍范文
  12. Android MVP架构搭建
  13. matlab/simulink电力电子仿真斜坡信号Ramp设置和使用
  14. 戴尔服务器运行失败,dell戴尔服务器错误代码及解决方案2013版
  15. 文件 打包 及 生成Excel文件转PDF格式和Excsl文件格式一体数据
  16. People seldom do what they believe in. They do what is convenient, then repent.
  17. Heartbeat 与Corosync对比分析
  18. 关于命令注入的一些介绍
  19. 用Vue完成加减乘除运算
  20. 如何快速搭建一个像“天猫精灵”的智能语音助手?

热门文章

  1. 以太坊开启区块链2.0时代
  2. 1:1 人脸比对 开源_Hacktoberfest:我的开源门户
  3. unity水管工_我是如何从30岁的管道工转变为32岁的Web开发人员的
  4. Nagios的安装和基本配置(三:Nagios-Client的安装)
  5. java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法
  6. 查缺补漏 | Python自定义函数
  7. std::string的find问题研究
  8. Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
  9. 这就是我向您推荐使用Thunderbird邮件客户端的理由
  10. pinpoint的id的生成