关键词:登录名、数据库用户名、数据库角色成员,服务器角色
登录名:链接或登录Sql Server服务器时是用的登录名而非用户名登录的,程序里面的链接字符串中的用户名也是指登录名。
使用登录名只能进入服务器,但是还不能访问服务器中的数据库资源,需要对这个登录名进行数据库用户映射才行。
数据库用户名:假设登录名myName要使用一个数据库zyDatabase,需要做以下步骤:
1、先在zyDatabase(安全性中)建立用户(假设用户名为zhangyong073),建立时必须要指定对应的登录名myName,这就是登录名myName映射到了数据库zyDatabase的用户zhangyong073.
2、要指定此用户拥有的架构和数据库角色成员身份;架构如果不指定,则是默认的dbo,数据库角色成员可以是db_owner(此时则对zyDatabase有全部的操作权限)。
所以说,将登录名myName映射到了数据库zyDatabase的用户zhangyong073,zhangyong073属于db_owner角色,拥有dbo架构,此时web程序就可以用sql字符串链接到zyDatabase数据库,应该使用登录名myName和其密码;登录后,myName可以操作zyDatabase数据库,但是不能建立其他数据库,也不能新建其他登录名,不能操作其他数据库等,因为没有对应权限。
服务器角色:服务器角色似乎是针对SQL Server 登录名、Windows 帐户的,而某个数据库中建立的用户是不能具有服务器角色的。例如:任何登录名建立后默认都是public服务器角色,public没有权限建立新的数据库;如果登录名具有dbcreator服务器角色,用它登录后,就可以创建新数据库;如果登录名具有securityadmin服务器角色,用它登录后,就可以管理其他登录名。
服务器级的固定角色 | 说明 | |
sysadmin | sysadmin 固定服务器角色的成员可以在服务器中执行任何活动。 | |
serveradmin | serveradmin 固定服务器角色的成员可以更改服务器范围内的配置选项并关闭服务器。 | |
securityadmin | securityadmin 固定服务器角色的成员管理登录名及其属性。 他们可以 GRANT、DENY 和 REVOKE 服务器级权限。 他们还可以 GRANT、DENY 和 REVOKE 数据库级权限(如果他们具有数据库的访问权限)。 此外,他们还可以重置 SQL Server 登录名的密码。
| |
processadmin | processadmin 固定服务器角色的成员可以终止在 SQL Server 实例中运行的进程。 | |
setupadmin | setupadmin 固定服务器角色的成员可以添加和删除链接服务器。 | |
bulkadmin | bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。 | |
diskadmin | diskadmin 固定服务器角色用于管理磁盘文件。 | |
dbcreator | dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。 | |
Public | 每个 SQL Server 登录名均属于 public 服务器角色。 如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。 |
数据库角色:数据库级角色的权限作用域为数据库范围,而不是服务器范围。
固定数据库角色是在数据库级别预定义的,并且存在于每个数据库中。 db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。 只有db_owner 数据库角色的成员能够向 db_owner 角色中添加成员。
数据库级别角色 | 说明 |
db_owner | db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。 |
db_securityadmin | db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。 向此角色中添加主体可能会导致意外的权限升级。 |
db_accessadmin | db_accessadmin 固定数据库角色的成员可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限。 |
db_backupoperator | db_backupoperator 固定数据库角色的成员可以备份数据库。 |
db_ddladmin | db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。 |
db_datawriter | db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。 |
db_datareader | db_datareader 固定数据库角色的成员可以从所有用户表中读取所有数据。 |
db_denydatawriter | db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。 |
db_denydatareader | db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。 |