SQL Server 登陆名、服务器角色、用户名和数据库角色 --- 解释

1、基本解释sql

登陆名:登陆服务器的用户帐号;数据库

 

服务器角色:登陆名对该服务器具备的权限,角色分多种的,一个角色能够有多个登陆名,如操做系统的系统用户能够有多个。服务器

 

SQL服务器角色 架构

sysadmin            能够在 SQL Server 中执行任何活动。 sqlserver

serveradmin       能够设置服务器范围的配置选项,关闭服务器。 操作系统

setupadmin        能够管理连接服务器和启动过程。 .net

securityadmin    能够管理登陆和CREATE、DATABASE权限,还能够读取错误日志和更改密码。 日志

processadmin   能够管理在 SQL Server 中运行的进程。 server

dbcreator            能够建立、更改和除去数据库。 对象

diskadmin          能够管理磁盘文件。 

bulkadmin          能够执行 BULK INSERT 语句。 
 

用户名:登陆数据库访问帐号;

数据库角色:该用户名对该数据库具备的权限。

 

数据库角色     

db_owner                   数据库中有所有权限。 

db_accessadmin     能够添加或删除用户 ID。 

db_securityadmin    能够管理所有权限、对象全部权、角色和角色成员资格。 

db_ddladmin            能够发出ALL DDL,但不能发出GRANT、REVOKE或DENY语句。 

db_backupoperator  能够发出 DBCC、CHECKPOINT 和 BACKUP 语句。 

db_datareader          能够选择数据库内任何用户表中的全部数据。 

db_datawriter            能够更改数据库内任何用户表中的全部数据。 

db_denydatareader  不能选择数据库内任何用户表中的任何数据。 

db_denydatawriter   不能更改数据库内任何用户表中的任何数据。
 

通常使用sa(登陆名)或Windows administration(Windows 集成验证登录方式)登录,这种登陆名具备最高的服务器角色,可对服务器进行任何操做,登陆名具备的用户名是dbo(系统级),具备对全部用户建立的数据库中的数据进行一切操做权限。

 

2、详细解释

1.一个数据库用户能够对应多个架构(架构是表容器)。架构里面包含的是数据库表。

2.一个数据库角色有可能涉及多个架构。数据库角色对应的是权限。

3.一个用户对应一个数据库角色。

4.登陆名与数据库用户在服务器级别是一对多的;在数据库级别是一对一的。

服务器登陆名:指有权限登陆到某服务器的用户;

服务器角色:指一组固定的服务器用户,默认有9组;

  • 登陆名必定属于某些角色,默认为public
  • 服务器角色不允许更改
  • 登陆后也不必定有权限操做数据库

数据库用户:指有权限能操做数据库的用户;

数据库角色:指一组固定的有某些权限的数据库角色;

数据库架构:指数据库对象的容器;

  • 数据库用户对应于服务器登陆名以便登陆者能够操做数据库
  • 数据库角色能够添加,能够定制不一样权限  
  • 数据库架构,相似于数据库对象的命名空间,用户经过架构访问数据库对象

服务器角色

sysadmin --在 SQL Server 中进行任何活动。该角色的权限跨越全部其它固定服务器角色。

serveradmin  --配置服务器范围的设置。

setupadmin  --添加和删除连接服务器,并执行某些系统存储过程(如 sp_serveroption)。

securityadmin  --管理服务器登陆。

processadmin  --管理在 SQL Server 实例中运行的进程。

dbcreator  --建立和改变数据库。

diskadmin  --管理磁盘文件。

bulkadmin  --执行 BULK INSERT 语句。

 

数据库角色

public
--public 角色是一个特殊的数据库角色,每一个数据库用户都属于它。public 角色: 
--捕获数据库中用户的全部默认权限。
--没法将用户、组或角色指派给它,由于默认状况下它们即属于该角色。
--含在每一个数据库中,包括 master、msdb、tempdb、model 和全部用户数据库。
--没法除去。

db_owner 
--进行全部数据库角色的活动,以及数据库中的其它维护和配置活动。
--该角色的权限跨越全部其它固定数据库角色。

db_accessadmin 
--在数据库中添加或删除 Windows NT 4.0 或 Windows 2000 组和用户以及 SQL Server 用户。

db_datareader 
--查看来自数据库中全部用户表的所有数据。

db_datawriter 
--添加、更改或删除来自数据库中全部用户表的数据

db_ddladmin 
--添加、修改或除去数据库中的对象(运行全部 DDL)

db_securityadmin 
--管理 SQL Server 2000 数据库角色的角色和成员,并管理数据库中的语句和对象权限

db_backupoperator 
--有备份数据库的权限

db_denydatareader 
--拒绝选择数据库数据的权限

db_denydatawriter
--拒绝更改数据库数据的权限

 

 

先说sqlserver里面的数据库级别设置:

服务器级 -> 数据库级 -> 架构级 - > 数据对象级,好比说:Server.DataBase1.dbo.Table1;这里的意思就是Table1这个表属于dbo这个架构

,dbo这个架构属于DataBase1这个数据库,DataBase1这个数据库属于Server这个服务器。里面的架构其实就是一个容器,好像就是面向对象里面的

命名空间,一个用户能够拥有多个架构,可是不能对没有拥有的架构进行操做。一个数据库角色,是对不一样架构里面数据对象的权限组织,也有可能涉及到

多个架构,当某一个用户被转换成一种数据库角色的时候,假如这个用户自己不拥有某一个架构而该数据库角色拥有,那它当它对那个架构进行操做的时候就会出错。

角色,角色意味着一种身份,在数据库服务器里是对一系列权限的组织。

服务器登陆名,指有权限登陆到某服务器的用户,能够在有权限的状况下建立新的登陆名,超级管理员的登陆名是sa

服务器角色,指一组固定的服务器用户,默认有9组;

  • 登陆名必定属于某些角色,默认为public
  • 服务器角色不允许更改
  • 登陆后也不必定有权限操做数据库

数据库用户,指有权限能操做数据库的用户;

数据库角色,指一组固定的有某些权限的数据库角色;

数据库架构,指数据库对象的容器;

  • 数据库用户对应于服务器登陆名以便登陆者能够操做数据库
  • 数据库角色能够添加,能够定制不一样权限  
  • 数据库架构,相似于数据库对象的命名空间,用户经过架构访问数据库对象

登陆名与用户在服务器级是一对多的,而在数据库里是一对一的。好比说Server这个服务器有4个数据库,DB1,DB2,DB3,DB4,每一个数据库都有一个用户USER1,USER2,USER3,USER,在建立一个登陆名my的时候能够经过用户映射的操做,为这个登陆名在每个具体的数据库中指定用户,好比能够以下指定my在DB1中的用户是USER1,它是在使用数据库的时候是惟一的,my在不能再DB1中切换用户,除非从新指定它对DB1数据库的用户映射。

用户通常是授权限管理的,在新建一个用户的时候是这样的:

须要指定它的登陆名,这也是映射操做的一部分,同时能够指定它的默认架构,如不指定就是dbo,也能够指定它拥有的其它架构和角色成员,不过没有默认数据库角色。

下面看看新建一个角色:

在新建的时候能够指定这个角色拥有那些架构,可是这些结构必须是这个数据库里面的,默认架构为当前用户使用的架构,好比当前用户的架构是dbo,则在角上权限定义时所使用的默认架构就是dbo,固然也能够指定其它的架构。

相关文章
相关标签/搜索