现在的位置: 首页 > 综合 > 正文

sql server2008 角色 简介

2018年07月06日 ⁄ 综合 ⁄ 共 3377字 ⁄ 字号 评论关闭
固定数据库服务器角色 

SYSADMIN                                 系统管理员角色:           拥有 sql server系统的所有权限许可;

SETUPADMIN                            安装管理员角色:          拥有 增加、删除链接服务器、建立数据库复制以及管理扩展存储过程的权限许可;

SERVERADMIN                         服务器管理员角色:      拥有SQL SERVER服务器端的设置权限许可;

SECURITYADMIN                     安全管理员角色:          拥有管理和审核SQL SERVER系统登录的权限许可;

PROCESSADMIN                     进程管理员角色:          拥有管理SQL SERVER系统进程的权限许可;

DISKADMIN                                磁盘管理员角色:          拥有管理磁盘文件的权限许可;

DBCREATOR                            数据库创建者角色:       拥有创建数据库、修改数据库权限的许可;

BULKADMIN                             批量数据输入管理员角色: 拥有管理同时批量输入大量数据操作的权限许可;

PUBLIC                                     公共数据库连接角色:     默认所有用户都拥有该角色;即可以连接到数据库服务器,但是没有其他任何权限(只有连接权限);

 

管理服务器角色的存储过程有:

sp_addsrvrolemember  login_name,role_name  将某一系统登录账号加入到服务器角色中,使其成为该服务器角色中的成员.

sp_dropsrvrolemember login_name,role_name  即将某一系统登录账号从该服务器角色中删除。

 

固定数据库角色

 

PUBLIC                                    每个数据库用户都属于PUBLIC角色,当尚未对某个用户授权或拒绝对安全对象的特定权限时,则用户继承该安全对象 的PUBLIC 角色的权限。

DB_OWNER                           可以执行数据库的所有配置和维护活动;

DB_ACCESSADMIN             可以增加或删除数据库用户、工作组、角色;

DB_BACKUPOPERATOR    可以备份和恢复数据库操作;

DB_DATAREADER               能够且仅能够最数据库中的任何表进行查询操作;

DB_DATAWRITER                能够最表中的数据进行增、删、改操作,但是不能够进行查询操作;

DB_DENYDATAREADER    不能够对数据库中的任何表中的数据进行查询操作;

DB_DENYDATAWRITER     不能够对数据库中的任何表进行增、删、改操作;

DB_DLLADMIN                      可以在数据库中执行任何数据定义语句操作;

DB_SECURITYADMIN          可以修改角色成员身份和管理权限;

 

管理固定数据库角色的存储过程:

CREATE ROLE role_name   [AUTHORIZATION owner_name]    说明: [AUTHORIZATION owner_name] 表示为拥有新角色的数据库用户或角色。如果未指定用户,则执行CREATE ROLE的用户将拥有该角色;

DROP ROLE role_name    即从当前数据库角色中删除一个角色;

SP_HELPROLE  [role_name ]  即显示当前数据库角色的所有信息;

SP_ADDROLEMEMBER role_name,account   将某一个安全账号添加到 某个数据库角色中,使其成为该数据库角色中的一员。并拥有该角色所拥有的权限;

SP_DROPROLEMEMBER role_name,account 将某一个安全账号从某个数据库角色中删除,并移除该账号继承该数据库角色的权限;

SP_HELPROLEMEMBER [role_name]   用于显示数据库角色中的所有成员信息。

 

 

sp_helprotect
返回一个报表,报表中包含当前数据库中某对象的用户权限或语句权限的信息。
语法
sp_helprotect [ [ @name = ] 'object_statement' ] [ , [ @username = ] 'security_account' ] [ , [ @grantorname = ] 'grantor' ] [ , [ @permissionarea = ] 'type' ]
参数
[@name =] 'object_statement'

是当前数据库中要报告其权限的对象或语句的名称。object_statement 的数据类型为 nvarchar(776),默认值为 NULL,此默认值将返回所有的对象及语句权限。如果值是一个对象(表、视图、存储过程或扩展存储过程),那么它必须是当前数据库中一个有效的对象。对象名称可以包含所有者限定符,形式为 owner.object。

如果 object_statement 是一个语句,则可以为:  
CREATE DATABASECREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEWBACKUP DATABASEBACKUP LOG  
[@username =] 'security_account'

是返回其权限的安全帐户名称。security_account 的数据类型为 sysname,默认值为 NULL,这个默认值将返回当前数据库中所有的安全帐户。security_account 必须是当前数据库中的有效安全帐户。当指定 Microsoft® Windows NT® 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。

[@grantorname =] 'grantor'

是已授权的安全帐户的名称。grantor 的数据类型为 sysname,默认值为 NULL,这个默认值将返回数据库中任何安全帐户所授权限的所有信息。当指定 Windows NT 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。

[@permissionarea =] 'type'

是一个字符串,表示是显示对象权限(字符串 o)、语句权限(字符串 s)还是两者都显示 (o s)。type 的数据类型为 varchar(10),默认值为 o s。type 可以是 o 和 s 的任意组合,在 o 和 s 之间可以有也可以没有逗号或空格。
返回代码值
0(成功)或 1(失败)
结果集列名数据类型描述Ownersysname对象所有者的名称。Objectsysname对象的名称。Granteesysname被授予权限的用户的名称。Grantorsysname向指定的被授权限用户进行授权的用户的名称。ProtectTypechar(10)保护类型的名称:  
GRANTREVOKE
Actionvarchar(20)权限的名称:  
REFERENCESSELECTINSERTDELETEUPDATECREATE TABLECREATE DATABASECREATE FUNCTIONCREATE RULECREATE VIEWCREATE PROCEDUREEXECUTEBACKUP DATABASECREATE DEFAULTBACKUP LOG
Columnsysname权限的类型:  
All = 权限适用于对象所有的当前列。New = 权限适用于任何以后可以在对象上进行修改(使用 ALTER 语句)的新列。All+New = All 和 New 的组合。
注释
该过程的所有参数都是可选的。如果不带参数执行 sp_helprotect,将显示当前数据库中所有已经授予或拒绝的权限。  

如果指定了一部分参数,而不是指定全部参数,请使用命名参数来标识特定的参数,或者使用 NULL 作为占位符。例如,若要报告授予方 dbo 的所有权限,请执行:

EXEC sp_helprotect NULL, NULL, dbo

或

EXEC sp_helprotect @grantorname = 'dbo'

输出报表按权限分类、所有者、对象、被授予方、授予方、保护类型分类、保护类型、动作以及列连续 ID 进行排序。
权限
执行权限默认授予 public 角色。
示例A. 列出某个表的权限
下面的示例列出了表 titles 的权限。

EXEC sp_helprotect 'titles'
B. 列出某个用户的权限
下面的示例列出当前数据库中用户 Judy 所拥有的所有权限。

EXEC sp_helprotect NULL, 'Judy'
C. 列出由某个特定的用户授予的权限
下面的示例列出了当前数据库中由用户 Judy 授予的所有权限,使用 NULL 作为缺少的参数的占位符。

EXEC sp_helprotect NULL, NULL, 'Judy'
D. 仅列出语句权限
下面的示例列出当前数据库中所有的语句权限,使用 NULL 作为缺少的参数的占位符。

EXEC sp_helprotect NULL, NULL, NULL, 's'


 

 

抱歉!评论已关闭.