日期:2011-05-02 15:20:00 来源:本站整理
Sql Server 2005中的用户(User)、架构(Schema)、角色(Role)和[MSSQL防范]
本文“Sql Server 2005中的用户(User)、架构(Schema)、角色(Role)和[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我相信很多人接触这些概念的时刻一头雾水.要把这些概念理清楚真不是件简单的事,哪像原始社会,只要能分清楚什么能吃什么不能吃就行了.
但是我始终坚信,每一个概念的产生必定是因为碰到了无法办理的问题.换句话说,假如没有它,必定会招致某些问题难以办理.所以我想从这个角度切入,但愿能把这几个复杂而暧昧的多角关系从最实用的角度来阐述清楚.
数据库对象.首先,数据库对象是对比简单懂的.全部的表,视图,存储历程,触发器都称为数据库对象.
我们可以拿一个网站来做类比.一个网站包含很多的网页,图片,脚本文件,我们姑且称它为网站对象.
明显,我们不大概把全部的网站对象都放到一个文件夹下面,一样原理,数据库对象也不大概象煮饺子一样就在数据库里这么一锅出.关于网站,我们普通会把差别模块的文件放在差别的子文件夹下,那么谁是存放数据库对象的文件夹呢?答案就是:架构(Schema).
架构(Schema).微软的官方阐明(MSDN): "数据库架构是一个独立于数据库用户的非反复命名空间,您可以将架构视为对象的容器".我们知道,在Java中,命名空间名其实就是文件夹名.因此我们十清楚确一点:一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹中一样.与文件夹差别的是,架构是不能嵌套的,如此罢了.因此,我们要拜候一个数据库对象的时刻,普通应当是引用它的全名"架构名. 对象名",这点非常近似C#.
问:为什么有的时刻写select * from tablename也可以履行呢?
答:这是因为default schema.当只写tablename时,sql server会自动加被骗前登录用户的default schema.
假如此表不属于当前登录用户的default schema,将会提醒无效的对象名.
加上shcema今后成功.
不过我们也可以更改当前用户的default schema,这时便可以不用加前缀了.
ALTER USER dbo WITH DEFAULT_SCHEMA =emdbuser;
当然,我们也可以改变此表的schema,相当于把这个表放到另一个文件夹,从emdbuser放到dbo中.
alter schema dbo TRANSFER emdbuser.Borrower
结论:架构就是数据库对象的容器.数据库对象是饮料,架构就是杯子,谁拿杯子喝水呢?当然是用户,那么是不是一个用户只能用一个杯子,一个杯子是不是从一而终,只能给一个人用呢?.请看第二节.
&nbs
以上是“Sql Server 2005中的用户(User)、架构(Schema)、角色(Role)和[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论