摘要:【目的】了解数据库中角色(Role)的概念和用处。【方法】用李老板的公司发展中碰到的问题例证角色的重要性【结论】角色在用户越多的情况下越能凸显出它的作用。

3.1 深入了解架构(Schema)

在进入李老板的故事之前,让我们先对Sql Server2005中的架构做一个更深入的了解。

用户(User)和架构(Schema)的关系

  • 一个架构有且只有一个所有者Owner。
  • 一个用户可以拥有多个架构。

这跟第二节中介绍的货架权限清单有所出入,第二节中的例子是多对多的关系,而实际Sql Server是采用一对多的关系。这反而比较像是银行账户。一个人可以有多个存折,但是一个存折只有一个用户。

  • 创建一个用户,系统将自动创建一个同名的架构。
  • 创建一个架构必须指定所有者,否则将默认为当前登陆用户。
  • 表属于不同的架构也不能重名。
  • 删除一个用户时,架构也会被删除?

架构(Schema)相关的SQL

创建架构

     CREATE SCHEMA [SchemaName] AUTHORIZATION [User]

更改架构的所有者

删除架构

数据库设计与架构

      架构的目的应该在于在同一数据库中提供一种隔离机制。按照这种思路,以最典型的产供销结构,我们可以这样设计一个数据库MyDatabase:

用户 架构 表全称
生产者 生产 表1 生产.表1
供应者 供应 表2 供应.表2
销售者 销售 表3 销售.表3

这样生产者登陆以后只能操作表1,供应者登陆以后只能操作表2...隔离效果非常好。但是,如果总经理想要查看一个产供销的综合报表该如何办呢?在这样的设计下,是根本做不到的。所以我们目前看到的实际情况是,基本上一个数据库只用一个架构和一个用户登陆。

用户 架构 表全称
MyUser MySchema 表1 MySchema.表1
表2 MySchema.表2
表3 MySchema.表3

这下总经理要看报表是没问题了,但是这样架构就形同虚设了。这也是为什么大家搞不清楚架构和用户的关系的原因。假如一个架构可以有多个拥有者,那么就可以彻底解决这个问题。

有人要说了,但是好像我用dbo登陆以后,是可以操作不同架构的表啊,这是为什么呢?那是因为上面的讨论是建立在没有角色的基础上的,要说清楚角色的问题,我们还是要回到李老板的故事。

3.2 人多不好管

1.大量的重复

2.工作调动

3.3 所有权与经营权

3.4 DB Role与App Role

3.5 数据库设计与角色

转载于:https://www.cnblogs.com/end/archive/2009/08/07/1541377.html

(zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)相关推荐

  1. 使用 SQL Server 2005中的 CLR 集成

    Balaji Rathakrishnan Christian Kleinerman Brad Richards Ramachandran Venkatesh Vineet Rao Microsoft ...

  2. SQL Server 2005中的分析服务功能[转]

    XXXX(不知道为什么CnBlogs上的人这么抵制XXXX,呵呵--)上推出了"体验SQL Server 2005"活动,当然啦,一些关于SQL Server 2005的文章被翻译 ...

  3. sql server 2005 中的同义词

    在SQL SERVER 2005中,终于出现了同义词了,大大方便了使用. 同义词是用来实现下列用途的数据库对象: 为本地或远程服务器上的另一个数据库对象(称为"基对象")提供备选名 ...

  4. SQL Server 2005中创建CLR存储过程

    在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解 ...

  5. 浅析SQL Server 2005中的主动式通知机制

    一.引言 在开发多人同时访问的Web应用程序(其实不只这类程序)时,开发人员往往会在缓存策略的设计上狠下功夫.这是因为,如果将这种环境下不常变更的数据临时存放在应用程序服务器或是用户机器上的话,可以避 ...

  6. (转)SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件

    SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件 [作/译者]:鹏城万里    [日期]:2008-07-24    [来源]:本站原创    [查看]: 2031 ...

  7. SQL Server 2005 中的客户端 XML 处理

    SQL Server 2005 中的客户端 XML 处理 XML 数据类型的客户端支持 .NET 框架 V2.0 中的 ADO.NET XML 支持 在 SqlDataReader.GetSqlXml ...

  8. 打破第一范式的要求 (中英对照)Michael Rys 对 SQL Server 2005 中XML 的 评论——对微软SQL Server项目经理Michael Rys博士的采访

    Michael Rys on XML in SQL Server 2005 Michael Rys对SQL Server 2005中XML的评论 Michael Rys is one of two p ...

  9. SQL Server 2005 中的商务智能和数据仓库

    微软发布了SQL Server 2005,对于微软与BI来说这是一个非常重要的版本,它完善了微软在BI方面的产品线.SQL Server 2005以及 Visual Studio .net2005的整 ...

最新文章

  1. ASP.NET MVC4简单使用ELMAH记录系统日志
  2. Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方
  3. React 中 keys 的作用是什么?
  4. 要闻君说:苹果又要新品发布啦;英伟达壕气,狂砸69亿收购Mellanox;谷歌瞄准印度小学生,推出AI学习工具;...
  5. Redis 2.8.9源码 - Redis中的字符串实现 sds
  6. AttributeError: 'NoneType' object has no attribute 'split' 报错处理
  7. mysql 查询时间戳(TIMESTAMP)转成常用可读时间格式
  8. 2.4 数值分析: Doolittle直接三角分解法
  9. Python入门之函数调用
  10. Android 10 添加第三方输入法为系统默认输入法
  11. 【win10网络重置后,网络适配器消失或者不能使用】
  12. 绝地求生中的士兵等级
  13. plot3D | 三维数据绘图(3):mesh函数、surf3D函数、spheresurf3D函数
  14. windbg下载符号方法
  15. POJ 2152 树型DP //很棒的题
  16. 初中使用计算机教学反思,谈初中信息技术教学反思
  17. leetcode 51. N 皇后
  18. 手机耗电统计app_Android O 新特性:精确统计 APP 电量消耗
  19. Verilog专题(十九)新世界的大门——状态机
  20. 华为携手思迈特软件成立BYOD移动办公联盟

热门文章

  1. python贪婪匹配和非贪婪匹配_贪婪匹配和非贪婪匹配
  2. python如何模拟键盘输入_python 模拟键盘输入
  3. php建站静态,php网站如何生成静态
  4. python文本解析_Python之文本文件解析
  5. 七、度量数据的相似性和想异性
  6. Python模块学习 ---- re正则表达式
  7. 又一款度盘不限速神器!无需登录即可下载
  8. 用 Python 控制你的鼠标和键盘,然后爱怎么玩怎么玩
  9. 算法函数_关于损失函数和优化算法,看这一篇就够了
  10. php实现报表的分组统计sql,实现报表的分组统计,其操作区域是。