没有合适的资源?快使用搜索试试~ 我知道了~
Sql Server 2005中的架构用户登录和角色
3星 · 超过75%的资源 需积分: 33 5 下载量 34 浏览量
2013-04-11
16:57:28
上传
评论
收藏 318KB DOCX 举报
温馨提示
试读
5页
架构就是数据库对象的容器。数据库对象是饮料,架构就是杯子,谁拿杯子喝水呢?当然是用户,那么是不是一个用户只能用一个杯子,一个杯子是不是从一而终,只能给一个人用呢?
资源推荐
资源详情
资源评论
我相信很多人接触这些概念的时候一头雾水。要把这些概念理清楚真不是件容易的事,
哪像原始社会,只要能分清楚什么能吃什么不能吃就行了。
但是我始终坚信,每一个概念的产生必然是因为碰到了无法解决的问题。换句话
说,如果没有它,必然会导致某些问题难以解决。所以我想从这个角度切入,希望能把这
几个复杂而暧昧的多角关系从最实用的角度来阐述清楚。
在问题的最初,我们假定的数据库什么都没有。
数据库对象。首先,数据库对象是比较容易懂的。所有的表,视图,存储过程,触
发器都称为数据库对象。
我们可以拿一个网站来做类比。一个网站包含很多的网页,图片,脚本文件,我
们姑且称它为网站对象。
显然,我们不可能把所有的网站对象都放到一个文件夹下面,同样道理,数据库
对象也不可能象煮饺子一样就在数据库里这么一锅出。对于网站,我们通常会把不同模块
的文件放在不同的子文件夹下,那么谁是存放数据库对象的文件夹呢?答案就是:架构
(Schema).
架构(Schema)。微软的官方说明(MSDN): "数据库架构是一个独立于数
据库用户的非重复命名空间,您可以将架构视为对象的容器",详细参考 http://technet.
microsoft.com/zh-cn/library/ms190387.aspx.我们知道,在 JAVA 中,命名空间名其
实就是文件夹名。因此我们非常明确一点:一个对象只能属于一个架构,就像一个文件只
能存放于一个文件夹中一样。与文件夹不同的是,架构是不能嵌套的,如此而已。因此,
我们要访问一个数据库对象的时候,通常应该是引用它的全名"架构名. 对象名",这点非
常类似 C#。
问:为什么有的时候写 select * from tablename 也可以执行呢?
答:这是因为 default schema.当只写 tablename 时,Sql Server 会自动加上当前
登录用户的 default schema。
如果此表不属于当前登录用户的 default schema,将会提示无效的对象名。
资源评论
- verymissu2015-04-17讲的透彻。值得下载
zhangyq_0702
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功