|
服务器角色是服务器级别的,由SQL server在安装过程中定义,属于固定角色,一共8个。用户不能定义服务器角色,但是可以在这些角色中添加用户以获得相关权限。
重要 身为 BUILTIN\Administrators 组成员的 Windows NT 4.0 或 Windows 2000 用户自动成为 sysadmin 固定服务器角色成员。
下表描述固定服务器角色。
固定服务器角色 描述
sysadmin 在 SQL Server 中进行任何活动。该角色的权限跨越所有其它固定服务器角色。
serveradmin 配置服务器范围的设置。
setupadmin 添加和删除链接服务器,并执行某些系统存储过程(如 sp_serveroption)。
securityadmin 管理服务器登录。
processadmin 管理在 SQL Server 实例中运行的进程。
dbcreator 创建和改变数据库。
diskadmin 管理磁盘文件。
bulkadmin 执行 BULK INSERT 语句。
--下面的示例将 Windows NT 用户 Corporate\HelenS 添加到 sysadmin 固定服务器角色中。
--T-SQL demo
EXEC sp_addsrvrolemember ''Corporate\HelenS'', ''sysadmin''
对 sysadmin 角色成员以外的所有用户,securityadmin 具有执行 sp_password 存储过程的权限。bulkadmin 固定服务器角色具有执行 BULK INSERT 语句的权限。与所有指定固定服务器角色成员一样,bulkadmin 角色成员也可以将其它登录添加到角色。但是,由于与执行 BULK INSERT 语句相关联的安全含义(BULK INSERT 语句要求对运行服务器的网络和计算机上的任何数据具有读权限),bulkadmin 角色成员授予其它角色成员权限可能并不理想。bulkadmin 角色为 sysadmin 固定服务器角色成员提供了一种方法,可以委托要求执行 BULK INSERT 语句的任务,而不用授予用户 sysadmin 权限。允许 bulkadmin 角色成员执行 BULK INSERT 语句,但是这些成员对要插入数据的表仍必须具有 INSERT 权限。
--切换到你新增的用户要控制的数据库
use 数据库名
go
--新增用户
exec sp_addlogin ''test'' --添加登录
exec sp_grantdbaccess N''test'' --使其成为当前数据库的合法用户
exec sp_addrolemember N''db_owner'', N''test'' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N''test'' --移除对数据库的访问权限
exec sp_droplogin N''test'' --删除登录
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加
--添加用户:
exec sp_addlogin ''用户名'',''密码'',''默认数据库名''
--添加到数据库
exec sp_grantdbaccess ''用户名'',''数据库名''
--权限
grant insert,select,update,delete on table1 to public |
|