SQL Server 的Login、User、Schema、Role

小D初次接触SQL Server 就被这几个概念搞晕了,相信不少同学和小D一样被以上的问题困扰过,今天就斗胆一块和大家把这几个概念捋一捋。


Login
Login 是Server一级的概念,表示登录Server的凭证,比如在Server_XXX上有一个数据库Northwind,那么想要访问数据库Northwind,第一步要做的事情就是先登录到拥有该数据库的Server_XXX上。
User
有了Login,表明我可以登录到拥有该Database的Server,并不表明我能够访问数据库,除非我是内置的Windows管理员,否则,我也只能登录到该Server上,什么事情也做不了。就好比,我有一个农家小院的大门钥匙(Login),我打开大门(登录),却只能在院子里边站着,因为房间的门都是锁着的,我没有房间的钥匙(User)啊,怎样才能进到屋子里边去呢?User就是要完成这样的功能。由于User属于数据库对象,不属于Server对象(Login属于Server对象),因此我们如果想创建一个User,首先必须进入到想创建User的数据库中(use 该数据库),然后创建User。


小D笔记
  • Login信息保存在实例的master库中,User信息保存在对应数据库的系统表中。
  • 每个User必须对应一个Login;每个Login可以对应多个User,前提是User在不同的数据库中。

Schema
九牛二虎之力之后,我们终于如愿以偿地进入到自己的房间了,却发现原来里边都是上下铺,究竟那个床(Schema)才是我的呢?我能把我的行李放在哪里呢?这个就是架构,Schema:数据库数据库架构是一个独立于数据库用户的非重复命名空间,我们可以将架构视为对象的容器,这不就是床了,放东西啦。或者我们可以拿一个网站来做类比,一个网站包含很多的网页,图片,脚本文件,我们姑且称它为网站对象。显然,我们不可能把所有的网站对象都放到一个文件夹下面,同样道理,数据库对象也不可能象煮饺子一样就在数据库里这么一锅出。对于网站,我们通常会把不同模块的文件放在不同的子文件夹下,那么谁是存放数据库对象的文件夹呢?答案就是:架构(Schema)。
Role
角色这个概念是为了降低管理成本,简化管理的工作量而出现的,这个概念相必不用多说了吧,和Oracle并无二致。


小D笔记

角色是权限的集合,架构是对象的集合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,465评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,418评论 25 709
  • 权限两个字,一个权力,一个限制。在软件领域通俗的解释就是哪些人可以对哪些资源做哪些操作。在SQL Server中,...
    不知名的蛋挞阅读 4,569评论 0 5
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,380评论 22 257
  • 空了两天没写开心的事了,这样的偷懒,不知道算不算是一件开心的事呢。最近躺在床上都想在,读点纸质书吧。然后没读,就睡...
    七不斯阅读 100评论 0 0

友情链接更多精彩内容