当前位置:首页 » 数据仓库 » 为数据库角色添加成员
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

为数据库角色添加成员

发布时间: 2022-10-31 22:45:01

A. sql server 2005中数据库角色成员身份中那些东西都是什么意思啊,如果只选public会有哪些权限

12.4 角色 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role)。数据库角色指定了可以访问相同数据库对象的一组数据库用户。数据库角色的成员可以分为如下几类:Windows用户组或用户账户SQL Server登录其他角色SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:固定服务器固定数据库用户自定义12.4.1 固定服务器 由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。表12-1列出了所有现有的固定服务器角色。表12-1 固定服务器角色固定服务器角色说 明sysadmin执行SQL Server中的任何动作serveradmin配置服务器设置setupadmin安装复制和管理扩展过程securityadmin管理登录和CREATE DATABASE的权限以及阅读审计processadmin管理SQL Server进程dbcreator创建和修改数据库diskadmin管理磁盘文件下面两个系统过程用来添加或删除固定服务器角色成员:sp_addsrvrolemember sp_dropsrvrolemember 注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。sa登录 sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。12.4.2 固定服务器角色及其权限 在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:sp_srvrolepermission[[@srvrolename =] 'role'] 如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。1. sysadmin 固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。2. serveradmin 固定服务器角色serveradmin的成员可以执行如下的动作:向该服务器角色中添加其他登录运行dbcc pintable命令(从而使表常驻于主内存中)运行系统过程sp_configure(以显示或更改系统选项)运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)使用shutdown命令关掉数据库服务器运行系统过程sp_tableoption为用户自定义表设置选项的值3. setupadmin 固定服务器角色setupadmin中的成员可以执行如下的动作:向该服务器角色中添加其他登录添加、删除或配置链接的服务器执行一些系统过程,如sp_serveroption4. securityadmin 固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:向该服务器角色中添加其他登录读取SQL Server的错误日志运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)5. processadmin 固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:向该服务器角色中添加其他登录执行KILL命令(以取消用户进程)6. dbcreator 固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:向该服务器角色中添加其他登录运行CREATE DATABASE和ALTER DATABASE语句使用系统过程sp_renamedb来修改数据库的名称7. diskadmin 固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:向该服务器角色中添加其他登录运行如下系统过程:sp_dmpdevice和sp_dropdevice。运行DISK INIT语句12.4.3 固定数据库角色 固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。表12-2列出了所有的固定数据库角色。表12-2 固定数据库角色固定数据库角色说 明db_owner可以执行数据库中技术所有动作的用户db_accessadmin可以添加、删除用户的用户db_datareader可以查看所有数据库中用户表内数据的用户db_datawriter可以添加、修改或删除所有数据库中用户表内数据的用户db_ddladmin可以在数据库中执行所有DDL操作的用户db_securityadmin可以管理数据库中与安全权限有关所有动作的用户db_backoperator可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)db_denydatareader不能看到数据库中任何数据的用户db_denydatawriter不能改变数据库中任何数据的用户除了表12-2中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public,这里将首先介绍这一角色。public角色 public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保留了默认的权限,因此是不能被删除的。(示例12.12给出了public角色的使用方法。)一般情况下,public角色允许用户进行如下的操作:使用某些系统过程查看并显示master数据库中的信息执行一些不需要一些权限的语句(例如PRINT)12.4.4 固定数据库角色及其权限 在数据库中,每个固定数据库角色都有其特定的权限。这就意味着对于某个数据库来说,固定数据库角色的成员的权限是有限的。使用系统过程sp_dbfixedrolepermission就可以查看每个固定数据库角色的权限。该系统过程的语法为:sp_db.xedrolepermission [[@rolename =] 'role'] 如果没有指定role的值,那么所有固定数据库角色的权限都可以显示出来。下面的几节将讨论每个固定数据库角色的权限。1. db_owner 固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作:向其他固定数据库角色中添加成员,或从其中删除成员运行所有的DDL语句运行BACKUP DATABASE和BACKUP LOG语句使用CHECKPOINT语句显式地启动检查点进程运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess使用系统过程sp_rename为任何数据库对象重新命名2. db_accessadmin 固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列操作:运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess为Windows用户账户、Windows组和SQL Server登录添加或删除访问3. dbdatareader 固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)4. dbdatawriter 固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)5. db_ddladmin 固定数据库角色db_ddladmin的成员可以进行如下的动作:运行所有DDL语句对任何表上授予REFERENCESE权限使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构使用系统过程sp_rename为任何数据库对象重命名使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者6. db_securityadmin 固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE)运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember7. db_backupoperator 固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:运行BACKUP DATABASE和BACKUP LOG语句用CHECKPOINT语句显式地启动检查点进程运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage8. db_denydatareader和db_denydatawriter 顾名思义,固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。12.4.5 应用程序角色 应用程序角色可以加强对某个特定的应用程序的安全。换句话说,这些角色允许应用程序自己代替SQL Server接管用户身份验证的职责。比如,如果公司中的员工只是使用某个特定的应用程序(而不是Transact-SQL语句或其他任何工具)来修改员工的数据信息,那么就可以为它创建一个应用程序角色。应用程序角色与其他的角色类型有着显着不同。首先,因为应用程序角色只使用应用程序,因而不需要把权限直接赋予用户,所以应用程序角色没有任何成员。其次,您需要为应用程序设置一个口令来激活它。当应用程序角色被应用程序的会话激活以后,在会话期间,会话就失去了适用于登录、用户账户或所有数据库中的角色的权限。1. 创建应用程序角色 使用下列方法可以创建应用程序角色:CREATE APPLICATION ROLE语句系统过程sp_addapproleCREATE APPLICATION ROLE语句可以为当前数据库创建一个应用程序角色。该语句有两个选项:一个与口令的规范有关,另一个用于默认模式的定义,也就是,当服务器为该角色指定对象的名称时,服务器将要搜索的第一个模式。示例12.10显示了一个应用程序角色的创建方法。示例12.10USE sample CREATE APPLICATION ROLE weekly_reports WITH PASSWORD ='x1y2z3w4', DEFAULT_SCHEMA =my_schema 示例12.10向当前数据库中添加了一个名为weekly_reports的新的应用程序角色。创建新的应用程序角色的第二种方法是使用系统过程sp_addapprole。使用系统过程sp_addapprole,就可以创建应用程序角色并把权限授予它们。该系统过程有如下的语法形式:sp_addapprole [@rolename =] 'role', [@passwd_name =] 'password'其中role指定了应用程序角色的名称,password是相应的口令。(激活角需要用到password的值。)注意:SQL Server将来的版本中将删除系统过程sp_addapprole这部分内容。请避免使用这一功能。您可以使用CREATE APPLICATION ROLE语句来代替。2. 激活应用程序角色 当启动连接以后,必须执行sp_setapprole系统过程来激活与应用程序角色有关的权限。该过程的语法形式如下所示:sp_setapprole[@rolename =] 'role', [@password =] 'password'[,[@encrypt =] 'encrypt_style'] 其中role是在当前数据库中定义的应用程序角色的名称。password指定了相应的口令,而encrypt_style则定义了口令的加密样式。在使用系统过程sp_setapprole激活应用程序角色时,必须知道如下的一些事项:在激活了应用程序角色之后,在当前数据库中就不能使这个角色无效,而必须等到会话从SQL Server中断开连接之后才可以。应用程序角色总是和数据库绑定在一起的。也就是说,应用程序角色的作用域是当前数据库。如果在会话中改变了当前数据库,那么根据那个数据库的权限,只能执行那个数据库中允许的(其他)动作。注意:通过提供应用程序角色的正确口令,任何用户都可以执行系统过程sp_setapprole。3. 修改应用程序角色 使用下列Transact SQL语句可以修改应用程序角色:ALTER APPLICATION ROLEDROP APPLICATION ROLEALTER APPLICATION ROLE语句可以修改已有的应用程序角色的名称、口令或默认模式。该语句的语法与CREATE APPLICATION ROLE语句的语法形式类似。要想执行ALTER APPLICATION ROLE语句,需要取得对该对象的ALTER权限。DROP APPLICATION ROLE语句可以从当前数据库中删除应用程序角色。如果应用程序角色拥有任何对象(可保护对象),就不能删除该角色。注意:您同样可以使用系统过程sp_dropapprole来删除某个应用程序角色,但是在SQL Server将来的版本将删除该系统过程,不再使用它。12.4.6 用户自定义的数据库角色 一般来说,在一组数据库用户需要在数据库中执行一套常用操作并且不存在可用的Windows用户组的情况下,才可能用到用户自定义的数据库角色。这些角色通过Transact-SQL语句或SQL Server系统过程进行管理。接下来我们将讨论Transact-SQL语句,然后介绍相应的系统过程。1. 角色和Transact-SQL CREATE ROLE语句可以在当前数据库中创建一个新的数据库角色。该语句的语法格式为:CREATE ROLE role_name[AUTHORIZATION owner_name] 其中role_name是创建的用户自定义的角色的名称。Owner_name指定了即将拥有这个新角色的数据库用户或角色。(如果没有指定用户,那么该角色将由执行CREATE ROLE语句的用户所拥有。)CREATE ROLE语句可以修改用户自定义的数据库角色的名称。类似地,DROP ROLE语句可以从数据库中删除角色。拥有数据库对象(可保护对象)的角色不能从数据库中删除。要想删除这类角色,必须首先转换那些对象的从属关系。DROP ROLE语句的语法形式如下所示:DROP ROLE role_name 2. 角色和系统过程 创建或修改用户自定义角色的另一个方法是使用SQL Server系统过程。下列系统过程可以用来创建和显示用户自定义的数据库角色:sp_addrole sp_addrolemember sp_droprolemember sp_droprole sp_helprole 系统过程sp_addrole可以在当前数据库中创建一个新的角色。只有数据库角色db_securityadmin或db_owner才能够执行这个系统过程。注意:SQL Server 2005中包含的系统过程sp_addrole只是向后兼容的,在将来发布的SQL Server版本中可能不再支持该系统过程。所以请使用CREATE ROLE语句来代替。向当前数据库中添加了一个角色之后,就可以使用系统过程sp_addrolemember来添加该角色的成员。角色的成员可以是任何SQL Server中的合法用户、Windows用户组或用户,或另一个SQL Server角色。只有数据库角色db_owner的成员才能执行该系统过程。另外,角色拥有者也可以执行sp_addrolemember来向它所拥有的任何角色中添加成员。系统过程sp_droprolemember可以用来从角色中删除现有的成员。(但是不能使用这一系统过程来从某个Windows组中删除现有的Windows用户。)只有数据库角色db_owner或db_securityadmin才能执行该系统过程。在使用系统过程sp_droprolemember删除了角色中的所有成员之后,可以使用系统过程sp_droprole来从当前数据库中删除角色。(含有现有成员的角色不能删除。)只有数据库角色db_owner或db_securityadmin才能执行该系统过程。注意:SQL Server 2005中包含的系统过程sp_droprole只是向后兼容的,在将来发布的SQL Server版本中可能不再支持该系统过程。所以请使用DROP ROLE语句来代替。系统过程sp_helprole可以用来显示当前数据库中某个特定的角色或所有角色(如果没有提供角色名称)的相关信息(角色名称和角色的ID号)。只有数据库角色db_owner或db_securityadmin才能执行该系统过程。

B. SQL server 2000 创建数据库角色以及向数据库角色添加用户的命令行是什么

sp_addlogin 'USER','PWD','DATABASE'
sp_addsrvrolemember 'USER','sysadmin'
sp_adser 'USER','USER','db_owner'

C. sql server中利用sql语句如何创建角色和用户

, securityadmingo--作好SQL的安全管理--作者:邹建 首先,做好用户安全:--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)1 .企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定2 .企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码3 .删除用户:BUILTIN\Administrators<机器名 \Administrator--这个用户不一定有 这样可以防止用windows身份登陆SQL4 .设置进入企业管理器需要输入密码 在企业管理器中--右键你的服务器实例(就是那个有绿色图标的)--编辑SQL Server注册属性--选择"使用 SQL Server 身份验证"--并勾选"总是提示输入登录名和密码"--确定--经过上面的设置,你的SQL Server基本上算是安全了.------------------------------------------------------------------------ 其次,改默认端口,隐藏服务器,减少被攻击的可能性 SQL Server服务器--开始--程序--Microsoft SQL Server--服务器网络实用工具--启用的协议中"TCP/IP"--属性--默认端口,输入一个自已定义的端口,比如2433--勾选隐藏服务器------------------------------------------------------------------------------管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)--切换到你新增的用户要控制的数据库use你的库名go--新增用户execsp_addlogin'test'--添加登录execsp_grantdbaccess N'test'--使其成为当前数据库的合法用户execsp_addrolemember N'db_owner' , N'test'--授予对自己数据库的所有权限--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表go--删除测试用户execsp_revokedbaccess N'test'--移除对数据库的访问权限execsp_droplogin N'test'--删除登录 如果在企业管理器中创建的话,就用:企业管理器--安全性--右键登录--新建登录常规项--名称中输入用户名--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)--默认设置中,选择你新建的用户要访问的数据库名 服务器角色项 这个里面不要选择任何东西 数据库访问项 勾选你创建的用户需要访问的数据库名 数据库角色中允许,勾选"public ","db_ownew" 确定,这样建好的用户与上面语句建立的用户一样--------------------------------------------------------------------------- 最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:--添加只允许访问指定表的用户:execsp_addlogin'用户名','密码','默认数据库名'--添加到数据库execsp_grantdbaccess'用户名'--分配整表权限GRANTSELECT, INSERT, UPDATE, DELETEONtable1TO[用户名]--分配权限到具体的列GRANTSELECT, 至于具体的安全设置和理论知道,参考SQL联机帮助

D. 添加或删除组织管理员/基础数据管理员/一般用户为哪个角色具有的权限

数据库级别的角色名称及说明

db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。

db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。向此角色中添加主体可能会导致意外的权限升级。

db_accessadmin 固定数据库角色的成员可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限。

db_backupoperator 固定数据库角色的成员可以备份数据库。

db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。

db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。

db_datareader 固定数据库角色的成员可以从所有用户表中读取所有数据。

db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。

db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。

有关数据库级固定角色权限的特定信息,请参阅固定数据库角色的权限(数据库引擎)。

msdb 角色 msdb 数据库中包含下表显示的特殊用途的角色。

msdb 角色名称及说明

db_ssisadmin
db_ssisoperator
db_ssisltser

E. 数据库所有者身份如何设置

在数据库-安全性-登录名里设置。
里面还可以设定:
角色
当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role)。数据库角色指定了可以访问相同数据库对象的一组数据库用户。
数据库角色的成员可以分为如下几类:
Windows用户组或用户账户
SQL Server登录
其他角色

F. sql中添加用户

在数据库添加帐户:

在查询分析器里面:

use master
GO

exec sp_addlogin '要添加的用户名','密码' -- 添加登录用户
exec sp_grantdbaccess '刚才添加的用户名' -- 给访问权限

还可以限制这个用户用哪些权限:
如:拥有,增删改查的所有权限:
grant select,insert,update,delete on userInfo to 'sa'

sa 用户对 userInfo 表拥有所有的权限

G. sql server如何给建好的数据库添加用户 我发现添加了用户却不知道怎么设置密码

首先,你要以管理员身份先登陆到数据库,然后 安全性 >登录名》新建登陆名
在弹出的窗口上输入登陆名,选择SQL Server身份认证,输入密码,想要设置比较简单的的密码的话,需要把强制实施密码策略这个选项去掉。
在服务器角色里选择该用户的服务器角色,普通用户的话,用public就行
在用户映射里选择该用户可以登陆的数据库,打上勾后,在下面选择用户所在数据库的访问权限,根据增删 改查的需求选择相应的角色成员身份,
状态里设置该用户是否可以用连接工具登陆到数据库服务。
再一点确定就OK了,就这么简单。

H. sql 数据库中syadmin固定服务器怎么添加角色

数据库角色的成员可以分为如下几类:

Windows用户组或用户账户

SQL Server登录

其他角色

SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:

固定服务器

固定数据库

用户自定义

固定服务器

由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。

固定服务器角色

说 明

sysadmin

执行SQL Server中的任何动作

serveradmin

配置服务器设置

setupadmin

安装复制和管理扩展过程

securityadmin

管理登录和CREATE DATABASE的权限以及阅读审计

processadmin

管理SQL Server进程

dbcreator

创建和修改数据库

diskadmin

管理磁盘文件

下面两个系统过程用来添加或删除固定服务器角色成员:

sp_addsrvrolemember

sp_dropsrvrolemember

注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。

sa登录

sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。

注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。

固定服务器角色及其权限

在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:

sp_srvrolepermission[[@srvrolename =] 'role']

如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。

1. sysadmin

固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。

固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。

2. serveradmin

固定服务器角色serveradmin的成员可以执行如下的动作:

向该服务器角色中添加其他登录

运行dbcc pintable命令(从而使表常驻于主内存中)

运行系统过程sp_configure(以显示或更改系统选项)

运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)

使用shutdown命令关掉数据库服务器

运行系统过程sp_tableoption为用户自定义表设置选项的值

3. setupadmin

固定服务器角色setupadmin中的成员可以执行如下的动作:

向该服务器角色中添加其他登录

添加、删除或配置链接的服务器

执行一些系统过程,如sp_serveroption

4. securityadmin

固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:

向该服务器角色中添加其他登录

读取SQL Server的错误日志

运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)

5. processadmin

固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

执行KILL命令(以取消用户进程)

6. dbcreator

固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

运行CREATE DATABASE和ALTER DATABASE语句

使用系统过程sp_renamedb来修改数据库的名称

7. diskadmin

固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:

向该服务器角色中添加其他登录

运行如下系统过程:sp_dmpdevice和sp_dropdevice。

运行DISK INIT语句

固定数据库角色

固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。下表列出了所有的固定数据库角色。

固定数据库角色

说 明

db_owner

可以执行数据库中技术所有动作的用户

db_accessadmin

可以添加、删除用户的用户

db_datareader

可以查看所有数据库中用户表内数据的用户

db_datawriter

可以添加、修改或删除所有数据库中用户表内数据的用户

db_ddladmin

可以在数据库中执行所有DDL操作的用户

db_securityadmin

可以管理数据库中与安全权限有关所有动作的用户

db_backoperator

可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)

db_denydatareader

不能看到数据库中任何数据的用户

db_denydatawriter

不能改变数据库中任何数据的用户

除了上表中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public,这里将首先介绍这一角色。

public角色

public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保留了默认的权限,因此是不能被删除的。

一般情况下,public角色允许用户进行如下的操作:

使用某些系统过程查看并显示master数据库中的信息

执行一些不需要一些权限的语句(例如PRINT)

固定数据库角色及其权限

在数据库中,每个固定数据库角色都有其特定的权限。这就意味着对于某个数据库来说,固定数据库角色的成员的权限是有限的。使用系统过程sp_dbfixedrolepermission就可以查看每个固定数据库角色的权限。该系统过程的语法为:

sp_db.xedrolepermission [[@rolename =] 'role']

如果没有指定role的值,那么所有固定数据库角色的权限都可以显示出来。下面的几节将讨论每个固定数据库角色的权限。

1. db_owner

固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作:

向其他固定数据库角色中添加成员,或从其中删除成员

运行所有的DDL语句

运行BACKUP DATABASE和BACKUP LOG语句

使用CHECKPOINT语句显式地启动检查点进程

运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES

使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess

使用系统过程sp_rename为任何数据库对象重新命名

2. db_accessadmin

固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列操作:

运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess

为Windows用户账户、Windows组和SQL Server登录添加或删除访问

3. dbdatareader

固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)

4. dbdatawriter

固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)

5. db_ddladmin

固定数据库角色db_ddladmin的成员可以进行如下的动作:

运行所有DDL语句

对任何表上授予REFERENCESE权限

使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构

使用系统过程sp_rename为任何数据库对象重命名

使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者

6. db_securityadmin

固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:

运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE)

运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember

7. db_backupoperator

固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:

运行BACKUP DATABASE和BACKUP LOG语句

用CHECKPOINT语句显式地启动检查点进程

运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

8. db_denydatareader和db_denydatawriter

顾名思义,固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。

固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。

I. 将用户添加到不同的数据库角色中,语句怎么写

--把角色赋予指定账户
grantrole_nametouser_name;
--删除角色
droprolerole_name;
--看看这是不是你要的
--查看用户拥有权限
SELECT*FROMuser_role_privsWHEREusername='大写';

J. SQL SERVER要使一个计算机用户成为数据库用户,基本操作步骤是什么

1.创建角色
2.创建用户
3.付给用户角色