当前位置: 首页 > 编程日记 > 正文

SQL SERVER 架构管理

架构特点:

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

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

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

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

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

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

架构管理

一、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 拥有的、包含表 NineProngsSprockets 架构。该语句向 Mandar 授予 SELECT 权限,而对 Prasanna 拒绝授予 SELECT 权限。请注意,SprocketsNineProngs 在一个语句中创建。

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

相关文章:

linux 端口 流量统计,Linux下如何对端口流量进行统计

在不修改源代码的情况下对程序暴露端口流量进行监控统计&#xff0c;可以利用Linux中自带的Iptable添加简单的规则让其起到端口流量统计的作用。但是需要注意的是在服务器重启、Iptable服务重启的时候统计数据会被重置清零。添加需要统计的端口1、输入监控下面示例是监控目标端…

如何轻松实现iOS9多任务管理器效果(iCarousel高级教程)

前言 iOS9系统下 为了我司APP的兼容性问题 特意把手上的iOS Mac XCode都升级到了最新的beta版 然后发现iOS9的多任务管理器风格大变 变成了下面这种样子 我忽然想起来之前的文章提到我最爱的UI控件iCarousel要实现类似这种效果其实是很简单的 一时兴起就花时间试验了一下 效果还…

linux并发控制之自旋锁

自旋锁是一种对临界资源进行互斥访问的典型手段&#xff0c;其名来源于它的工作方式。通俗的讲&#xff0c;自旋锁就是一个变量&#xff0c;该变量把一个临界区标记为“我当前在运行&#xff0c;请等待”或者标记为“我当前不在运行&#xff0c;可以被使用”&#xff0c; 如果A…

半透明遮罩层覆盖整个可视区域

我们经常会遇到点击一个按钮弹出一个对话框和一个变暗的遮罩层&#xff0c;简单的写法只能让遮罩层覆盖浏览器的大小&#xff0c;那么怎么让遮罩层覆盖全部区域呢&#xff1f; css代码如下&#xff1a; 1 html,body {2 height: 100%;3 margin: 0;4 padding: 0;5 }6…

观察内核linux行为,Linux 学习:基于proc观察Linux行为

内容简介本篇博文的主要内容是通过/proc文件&#xff0c;对Linux系统管理有一个初步的认识。在Linux中&#xff0c;proc文件系统提供了一套在用户态检查内核状态和系统特征的机制。proc文件系统将进程的地址空间、系统的硬件信息、系统相关机制(中断、I/O)等内容全部设置为虚拟…

对数据库表中的某一字段去重分组排序

1、问题背景 某数据库t_tab_ab中有两个字段a和b&#xff0c;例如以下所看到的&#xff1a; 查询前&#xff1a; 查询后&#xff1a; a b a b 1 2 1 2 1 3 2 3 1 4 …

设置应用图标badge(徽章)

// 图标右上角的数字[UIApplication sharedApplication].applicationIconBadgeNumber msgCount result.status result.follower; 转载于:https://www.cnblogs.com/pretty-guy/articles/4106529.html

hdu - 1087 - Super Jumping! Jumping! Jumping!

题意&#xff1a;求最大升序和。 题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1087 ——>>设d[i]表示以第i个数为终点的最大升序和&#xff0c;然后从第1个数到第i-1个数为终点的最大升序和进行检查&#xff0c;向后递推即可。 #include <iostrea…

linux 读取大量图片 内存,10 张图帮你搞定 TensorFlow 数据读取机制

导读在学习tensorflow的过程中&#xff0c;有很多小伙伴反映读取数据这一块很难理解。确实这一块官方的教程比较简略&#xff0c;网上也找不到什么合适的学习材料。今天这篇文章就以图片的形式&#xff0c;用最简单的语言&#xff0c;为大家详细解释一下tensorflow的数据读取机…

安卓真机测试安装时报错

在将程序发布到手机上时提示该错误&#xff1a; INSTALL_FAILED_INSUFFICIENT_STORAGE 手机内存满了...删除程序... 就可以安装了转载于:https://www.cnblogs.com/H-K-Home/p/5279819.html

C#学习笔记——捕获当前屏幕

编程思路&#xff08;API 编程&#xff09;&#xff1a; 先调用 GetForegroundWindow 获取当前活动程序窗口句柄&#xff0c;然后调用 GetWindowDC 获取窗口的设备句柄&#xff08;或 GetDC 函数&#xff09;&#xff0c;调用 BitBlt 位图传输函数将位图拷贝到兼容的设备场景中…

Exception loading sessions from persistent storage

严重: Exception loading sessions from persistent storage java.io.EOFException 删除Tomcat里面的work/Catalina/localhost下的内容即可解决 Tomcat在启动时出现如下异常问题&#xff1a; 严重: IOException while loading persisted sessions: java.io.EOFException严重: E…

linux独立应用程序开发,Linux应用程序开发(一)

Linux应用程序开发(一)---移植thttpdSqlite3PHP5到arm linux(4)移植环境(红色粗字体字为修改后内容&#xff0c;蓝色粗体字为特别注意内容)1&#xff0c;主机环境&#xff1a;VMare下CentOS 5.5 &#xff0c;1G内存。2&#xff0c;集成开发环境&#xff1a;Elipse IDE3&#xf…

面向过程(结构化)分析方法与面向对象分析方法的区别

面向过程是从问题的总体目标开始&#xff0c;抽象底层的细节&#xff0c;先专心构造高层的结构&#xff0c;然后再一层一层地分解合细化。 面向对象则是运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的方法。 面向过程着重于解决问题的从粗略到详尽的方法…

eclipse.ini内存设置

-vmargs -Xms128M -Xmx512M -XX:PermSize64M -XX:MaxPermSize128M 这里有几个问题&#xff1a;1. 各个参数的含义什么&#xff1f;2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动&#xff0c;而有些机器无法启动&#xff1f;3. 为何将上面的参数写…

如何运用下载来的模板

&#xff08;1&#xff09;在相应的网址下载模块文件 例如&#xff1a;https://github.com/yagitoshiro/ImageAsResized &#xff08;2&#xff09;把下载的模块包解压放到C:\Users\Administrator\AppData\Roaming\Titanium\modules\android 目录结构如下所示&#xff1a; 而这…

红旗linux桌面版反应慢,红旗Linux6.0桌面版使用感受

1.红旗Linux6.0桌面版中文支持比较好&#xff0c;毕竟是国人出的发行版&#xff1b;输入法很不错&#xff1b;自动挂载win分区(好像Ubuntu、OpenSUSE、Fedora等这些流行发行版的新版都支持了)&#xff0c;自动安装网络&#xff0c;用路由的话可以直接上网了。2.处处向windows靠…

device.cpp

Java代码 #include "device.h" #include <math.h> //Class Timer member function implementation int Timer::createTimer() { _start 0; _clocks 0; #ifdef _WIN32 QueryPerformanceFrequency((LARGE_INTEGER* )&_freq); #else _freq (long long)1.0E…

简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他...

函数式编程 Lambda exec&#xff0c;eval和assert语句&#xff0c;repr函数 lambda语句 用来创建简短的单行匿名函数 print_assign lambda name, value: name str(value)等同于def print_assign(name, value): return name str(value) lambda需要一个参数&#xf…

防止重复提交订单-(转)

防止重复提交 Button1.Attributes.Add("onclick", "this.value正在提交中&#xff0c;请等待……;this.disabledtrue;" this.GetPostBackEventReference(Button1)); 于是根据这个写了个只能提交一次的控件&#xff1a; publicclassButtonSubmitOn…

linux pps 包 网卡,linux下安装PPS

到官方下载FEDORA版RPM包。[talenliangshan Downloads]$ sudo yum localinstall PPStream.rpm已加载插件&#xff1a;axelget, fastestmirror, presto, priorities, refresh-packagekit, remove-with-leaves设置本地安装进程诊断 PPStream.rpm: PPStream-1.0.2-11.i386PPStream…

C#设置本地网络(DNS、网关、子网掩码、IP)

如今网络在我们的生活工作中所起的作用越来越大&#xff0c;可以说离开了网络我们就无法正常的工作和生活。作为程序员我们写的程序大多数也会跟网络相关&#xff0c;而想要使用网络首先要将机器的网络配置设置好。而手动设置的方法显然很不可取&#xff0c;所以我们要让程序帮…

Dynamics CRM2016 Web API之创建记录

前篇介绍了通过primary key来查询记录&#xff0c;那query的知识点里面还有很多需要学习的&#xff0c;这个有待后面挖掘&#xff0c;本篇来简单介绍下用web api的创建记录。 直接上代码&#xff0c;这里的entity的属性我列了几个比较典型的&#xff0c;和原来相比有区别的是选…

bootstrap轮播如何支持移动端滑动手势

1.下载滑动手势 js 插件&#xff1a;hammer.js //cdn.bootcss.com/hammer.js/2.0.8/hammer.min.js 2.写一个javascript命令调用hammer.js中的swipe功能 <script>$(function(){//添加移动端滑动var myElement document.getElementById(myCarousel)//id为轮播的idvar hmnew…

linux程序计数器,如何在C中打印程序计数器的确切值

小编典典您应该能够使用ARM编译器工具链中的__current_pc()内在函数来确定PC(ARM编译器支持许多与GCC相同的扩展)。*这是ARM特有的&#xff1a;int main () {printf("%#x\n", __current_pc());printf("%#x\n", __current_pc());printf("%#x\n", …

『转载』Debussy快速上手(Verdi相似)

『转载』Debussy快速上手&#xff08;Verdi相似&#xff09; Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool&#xff0c;这套软体主要不是用来跑模拟或看波形&#xff0c;它最强大的功能是&#xff1a;能够在HDL source code、schematic diagra…

大家好,新年快乐。

刚申请了个博客&#xff0c;祝大家新年快乐。 &#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d; So many children are playing zhu zhu pets at home.This t…

maven项目找不到pom.xml配置的dependency jar中的类问题解决方法

成功创建一个web项目后&#xff0c;假如我们在web.xml文件中&#xff0c;配置了spring的listener&#xff0c;在pom.xml中也已经作了依赖配置。部署 完项目后&#xff0c;启动项目&#xff0c;发现找不到spring配置的listner 类&#xff1a;org.springframework.web.context.Co…

红旗linux yum,更换红旗Linux: Asianux的yum源为网易源

测试环境&#xff1a;Linux系统版本Asianux4_x64&#xff1a;Linux localhost.localdomain 2.6.32-279.2.1.el6.x86_64 #1 SMP Tue Aug 14 11:42:24 CST 2012 x86_64 x86_64 x86_64 GNU/Linux本质上Asianux4_x64就是基于Redhat6企业版的。出现问题&#xff1a;安装完系统之后&a…

Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...

此人博客挺好的&#xff0c;推荐一个&#xff01; 一个基于Java Socket协议之上文件传输的完整示例&#xff0c;基于TCP通信完成。 除了基于TCP的二进制文件传输&#xff0c;还演示了JAVA Swing的一些编程技巧&#xff0c;Demo程序 实现主要功能有以下几点&#xff1a; 1. …