mssql sqlserver 登录名 服务器角色 数据库用户 数据库角色 架构之间的联系及区别分享


摘要:
下文讲述数据库中登录名 服务器角色 数据库用户 数据库角色 架构之间的联系及区别如下所示:


mssql_sqlserver_用户名_角色_之间的关系

mssql_sqlserver_用户名_角色_之间的关系



登录名功能:

有权限登陆sql引擎的用户名账户此处的账户会涉及相应的密码信息


服务器角色功能:

指登录名的权限组,默认登录名用户属于public服务器角色
系统默认有9个不同的权限组,禁止用户增加和修改,如下:

服务器角色名称

服务器角色功能说明
bulkadmin

执行 BULK INSERT 语句
dbcreator

创建和改变数据库
diskadmin

管理磁盘文件
processadmin

管理在 SQL Server 实例中运行的进程
public

默认登录名角色
securityadmin

管理服务器登录
serveradmin

配置服务器范围的设置
setupadmin

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

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


数据库用户功能:

数据库用户是操作数据库的账户;
登录名通过映射相应的数据库用户,然后获取操作数据库的相应权限。


数据库角色功能:

数据库角色主要用于管理数据库的操作权限的组合。
数据库角色,用户可以自定义定制出不同的权限
默认数据库角色,有以下10个:

数据库角色名称

数据库角色功能说明
db_accessadmin

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

有备份数据库的权限
db_datareader

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

添加、更改或删除来自数据库中所有用户表的数据
db_ddladmin

添加、修改或除去数据库中的对象(运行所有 DDL)
db_denydatareader

拒绝选择数据库数据的权限
db_denydatawriter

拒绝更改数据库数据的权限
db_owner

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

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

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


架构功能:

架构属于数据库
架构类似于面向对象中的命名空间
一个用户可以拥有多个架构,用户只能对自己拥有的架构进行相关操作,
我们也可以通过控制架构和用户的关系设置用户管理 对象的权限
一个机构也可以被多个用户使用

登录名 服务器角色 数据库用户 数据库角色 架构之间的联系:
一个数据库实例可以拥有多个登录户名
每个登录名在一个数据库中只能对应一个数据库用户,可以对应多个数据库的架构
每个登录名可以拥有多个服务器角色
————————————————–
一个数据库角色可以对应多个架构
一个数据库用户可以对应多个数据库角色,也可以对应(访问)多个数据库架构
一个数据库用户可以拥有多个数据库角色
————————————————————-
例:
服务器账户sa:对应各数据库的账户为dbo,
对应架构为dbo
sa隶属于服务器角色 sysadmin public
dbo用户隶属于数据库角色 public db_owner
————————————————————-