I. 登录名与用户名

登录名: 访问数据库服务器的账户。登录名可以登录到服务器,但不能直接访问数据库内容。数据库连接串中的用户名应配置为登录名。每个登录名的定义存放在master数据库的syslogins表中。

用户: 访问数据库内容的账户。一个登录名可以映射数据库中的一个用户(且仅能映射一个),从而使登录名具有了访问数据库的权限。用户定义信息存放在每个数据库的sysusers表中。

SQLSERVER把登录名与用户的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名映射的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库。

可以把一个数据库服务器理解为一个大楼,而每个数据库就是一个房间。所以登录名就是进入大楼的钥匙,而用户是进入房间的钥匙。有人会质疑,为什么要设两把钥匙,而不是直接分配房间的钥匙。有一个不错的解释是:“大楼的钥匙可以在大楼内建立房间/删除房间,以及配置整个大楼的安保等功能。而用户只能对自己的房间进行收拾。”

参见:
http://www.cnblogs.com/ibrahim/archive/2010/06/21/sqlserver_loginname_username.html
http://bbs.csdn.net/topics/360239408?page=1

II. 角色与架构

服务器角色: 对一组服务器操作权限的定义。一个登录名具有某一服务器角色就意味着此登录名具有此角色所定义的操作权限。

数据库角色: 对一组数据库操作权限的定义。一个用户具有某一数据库角色就意味着此用户具有此角色所定义的操作权限。

架构: 指数据库对象的容器,相当于数据库对象的命名空间。用户通过架构访问数据库对象。(在访问数据库对象时如果不加构架限制,则缺省设为“dbo”。)

一个数据库角色或用户拥有某一架构意味着此角色或用户有权访问此架构下的所有对象。系统预定义的每个数据库角色(除public)都拥有一个同名的架构,且此拥有关系不能修改。

参见:
http://www.cnblogs.com/50614090/archive/2010/12/16/1908636.html

参见一篇讨论较充分的文章(后面有一些重要的脚本命令说明):
http://blog.csdn.net/yu0089/article/details/9195295

SQL Server安全概念简析的更多相关文章

  1. 关于SQL\SQL Server的三值逻辑简析

    在SQL刚入门的时候,我们筛选为某列值为NULL的行,一般会采用如下的方式: SELECT * FROM Table AS T WHERE T.Col=NULL  www.2cto.com   而实际 ...

  2. SQL Server 死锁概念和分析

    锁的概念 锁是什么 锁是数据库中在并发操作情形下保护资源的机制.通常(具体要看锁兼容性)只有锁的拥有者才能对被锁的资源进行操作,从而保证数据一致性. 锁的概念可分为几部分 锁资源(锁住什么) 锁模式( ...

  3. SQL Server Alwayson概念总结

    一.alwayson概念 “可用性组” 针对一组离散的用户数据库(称为“可用性数据库” ,它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组主数据库以及一至八组对应的辅助数据库(包括一个主 ...

  4. SQL Server“复杂”概念之理解

    用惯了Oracle的人,接触SQL Server中的概念时,会觉得比较难理解,甚至感觉有点“绕”,这是因为Oracle中将某些其他数据库中存在的概念给简化了,这里就拿两个最常见的概念来举例说明:1.s ...

  5. Sql Server 游标概念与实例

    引言 先不讲游标的什么概念,看如下Sql Server2008 图例: 需求:两张表的O_ID是一一对应的,现在求将加薪的工资+原来的工资=现在的工资,也就是O_Salary=O_Salary+A_S ...

  6. sql server dba概念系列引用

    原文转自:https://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_sqlserver_architecture.html <人人都是 DB ...

  7. mysql体系结构和sql查询执行过程简析

    一: mysql体系结构 1)Connectors 不同语言与 SQL 的交互 2)Management Serveices & Utilities 系统管理和控制工具 备份和恢复的安全性,复 ...

  8. 利用pl/sql执行计划评估SQL语句的性能简析

    一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在.  那么,作为 ...

  9. VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析

    目录 目录 VMDK VDDK VixDiskLib VADP VMDK VMDK(VMware's Virtual Machine Disk Format,VMware 虚拟磁盘格式):简单来说就是 ...

随机推荐

  1. STM32中的PWM的频率和占空比的设置

    转于http://blog.csdn.net/liming0931/article/details/8491468 下面的这个是stm32的定时器逻辑图,上来有助于理解:   TIM3的ARR寄存器和 ...

  2. tomcat端口号被占用或者修改端口号的解决方法

    一)修改端口号: 在tomcat文件中找到conf里面的server.xml 在tomcat解压后的文件中按照下图操作

  3. git命令大全

    git init                          # 初始化本地git仓库(创建新仓库)git config --global user.name "xxx"   ...

  4. theano中的scan用法

    scan函数是theano中的循环函数,相当于for loop.在读别人的代码时第一次看到,有点迷糊,不知道输入.输出怎么定义,网上也很少有example,大多数都是相互转载同一篇.所以,还是要看官方 ...

  5. JDBC修改表数据

    修改数据时用到update语句,使用这个语句时也要有条件的,指定修改某一行的数据,没有条件判断,则修改全部. package qddx.JDBC; import java.sql.*; public ...

  6. 带日期的bean转为json(bean->JSON)

    示例代码: JsonBean bean = new JsonBean();bean.setName("NewBaby");bean.setAge(1);bean.setBorn(n ...

  7. sql关于Group by

    SELECT JBGS.XMID, SUM(JBGS.JBGS * JBYXXS.YXXS) / (SELECT  SUM(B.GS)  FROM T_XMCBHZ B  WHERE  B.XMID= ...

  8. PHP代码实用片段

    一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...

  9. linux下bom头导致的php调用php接口 返回的json字符串 无法转成 数组,即json字符串无法解码的问题

    今天很是郁闷,写了一个php接口,返回的是标准的json字符串,但是调用的php 就是无法json_decode(),返回错误码为4,最后终于找到原因,原来是蒙一个文件中有bom头,最后采用一个命令 ...

  10. Spring 发送 Email

    本文转自:http://zl198751.iteye.com/blog/757617 看到了本文,收获颇丰,感谢之至! 首先介绍下Email的发送流程: 需要选中smtp邮件服务器,Yahoo不提供免 ...