登录名就是你可以登录该服务器的信息;服务器角色就是该登录名对该服务器具有的权力,权力有大小,所以角色是多种的,一个角色可以有多个登录名,就好像操作系统的一般用户可以有好几个。
角色:多种权限(权利)的集合。
固定服务器角色 描述
sysadmin 可以在 SQL Server 中执行任何活动。
serveradmin 可以设置服务器范围的配置选项,关闭服务器。
setupadmin 可以管理链接服务器和启动过程。
securityadmin 可以管理登录和CREATE、DATABASE权限,还可以读取错误日志和更改密码。
processadmin 可以管理在 SQL Server 中运行的进程。
dbcreator 可以创建、更改和除去数据库。
diskadmin 可以管理磁盘文件。
bulkadmin 可以执行 BULK INSERT 语句。
serveradmin 可以设置服务器范围的配置选项,关闭服务器。
setupadmin 可以管理链接服务器和启动过程。
securityadmin 可以管理登录和CREATE、DATABASE权限,还可以读取错误日志和更改密码。
processadmin 可以管理在 SQL Server 中运行的进程。
dbcreator 可以创建、更改和除去数据库。
diskadmin 可以管理磁盘文件。
bulkadmin 可以执行 BULK INSERT 语句。
public 最基本的服务器角色
注意:服务器角色没有自定义的角色,只有固定的角色;public角色有些低版本的数据库管理系统就没有显示这个角色(05的没有,08的有),但是,创建的登录者有该项的功能。
用户名就是你是否可以登录上该数据库;数据库角色就是该用户名对该数据库具有的权力。
固定数据库角色 描述
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 不能更改数据库内任何用户表中的任何数据。
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 不能更改数据库内任何用户表中的任何数据。
public 最基本的数据库角色
注意:数据库和登录者关联的时候,也就是创建用户名时,系统自动添加public角色,且不可删除;数据库创建者可以自定义数据库角色。
我们一般用sa(登录名)或Windows administration(Windows 集成验证登陆方式)登陆,这种登录名具有最高的服务器角色,也就是可以对服务器进行任何一种操作,而这种登录名具有的用户名是dbo(系统弄的),也就具有对所有用户创建的数据库中的数据进行一切的操作的权限,所以,一般我们感觉不到上述那些东西,但是,他们确实存在。一般我们通常创建用户名与登录名相同(如果我们不改变用户名称的话,系统会自动弄上登录名和用户名相同,这个不是强制相同的),例如创建了一个登录名称为“青山”,那么可以为该登录名“青山”在指定的数据库中添加一个同名用户,使登录名“青山”能够访问该数据库中的数据。一个登录名可以对应多个用户名,多个用户名的数据库角色可以分别选择,但是,一个登录名在一个数据库上最多可以创建一个用户名。
创建登录名界面:
一个登录名可以在多个数据库上建立用户名,但在每个数据库上最多有一个用户名,系统默认用户名和登录名相同,但是,自己也可以更改。
(用户名可以自定义名称)
一个SQL Server系统可以有多个登录者,但多个登录者对SQL Server中数据库的权限是不同;一个数据库可以有多个用户,但多个用户对数据库中对象是不同的。登录名和用户名可以有多个角色。
我们对于登录者、服务器角色、用户名和数据库角色的应用只体现在登录者上,登录上了,就什么都有了,同时我们创建的时候,后者必须依靠着前者,也就是说最前者是根,如果没有登录者就没有后面的那些东西。
默认情况下,新建的数据库中没有guest用户账户。在查询编辑器里运行存储过程: 启用的话:sp_adduser 'guest' 禁用的话:sp_dropuser 'guest'。guest是一种特殊的登陆者,该登录者具有一定的权限,当然,这必须需要我们开启guest这个服务。