我要的结果是这样:只能有查询表的权限,并且还要有运行SQL Server Profiler的权限。这样才能跟踪发现问题,固然解决问题是另一回事,即不能有修改和更新存储过程的权限。数据库
我在分配角色成员时,给相关的登陆用户名赋予了"db_datareader"和"db_denydatawriter"的角色,这样就只有查询表的权限了。缓存
可是运行SQL Server Profiler的时候,会提示“您必须是 sysadmin 固定服务器角色的成员或具备 ALTER TRACE 权限,才能对 SQL Server 运行跟踪。”安全
请问我如今该怎么办?难道我 要求的这两个权限不能同时成立?服务器
1:>> 授予一个trace权限便可
use [master]
GO
GRANT ALTER TRACE TO [user]
GO网络
2:>>只是授予查询存储过程的能力,但不能执行存储过程设计
use [master]
GO对象
grant view definition to [user]进程
固定服务器角色:
按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述:
Bulkadmin:这个服务器角色的成员能够运行BULK INSERT语句。这条语句容许从文本文件中将数据导入到SQL Server 2008数据库中,为须要执行大容量插入到数据库的域帐户而设计。
Dbcreator:这个服务器角色的成员能够建立、更改、删除和还原任何数据库。这不只是适合助理DBA的角色,也多是适合开发人员的角色。
Diskadmin:这个服务器角色用于管理磁盘文件,好比镜像数据库和添加备份设备。它适合助理DBA。
Processadmin:SQL Server 2008可以多任务化,也就是说能够经过执行多个进程作多个事件。例如,SQL Server 2008能够生成一个进程用于向高速缓存写数据,同时生成另外一个进程用于从高速缓存中读取数据。这个角色的成员能够结束(在SQL Server 2008中称为删除)进程。
Securityadmin:这个服务器角色的成员将管理登陆名及其属性。他们能够受权、拒绝和撤销服务器级权限。也能够受权、拒绝和撤销数据库级权限。另外,它们能够重置SQL Server 2008登陆名的密码。
Serveradmin:这个服务器角色的成员能够更改服务器范围的配置选项和关闭服务器。例如SQL Server 2008可使用多大内存或监视经过网络发送多少信息,或者关闭服务器,这个角色能够减轻管理员的一些管理负担。
Setupadmin:为须要管理连接服务器和控制启动的存储过程的用户而设计。这个角色的成员能添加到setupadmin,能增长、删除和配置连接服务器,并能控制启动过程。
Sysadmin:这个服务器角色的成员有权在SQL Server 2008中执行任何任务。
Public:有两大特色,第一,初始状态时没有权限;第二,全部的数据库用户都是它的成员。事件
固定数据库角色:
微软提供了9个内置的角色,以便于在数据库级别授予用户特殊的权限集合。
db_owner:该角色的用户能够在数据库中执行任何操做。
db_accessadmin:该角色的成员能够从数据库中增长或者删除用户。
db_backupopperator:该角色的成员容许备份数据库。
db_datareader:该角色的成员容许从任何表读取任何数据。
db_datawriter:该角色的成员容许往任何表写入数据。
db_ddladmin:该角色的成员容许在数据库中增长、修改或者删除任何对象(便可以执行任何DDL语句)。
db_denydatareader:该角色的成员被拒绝查看数据库中的任何数据,可是他们仍然能够经过存储过程来查看。
db_denydatawriter: 像db_denydatareader角色,该角色的成员被拒绝修改数据库中的任何数据,可是他们仍然能够经过存储过程来修改。
db_securityadmin:该角色的成员能够更改数据库中的权限和角色。
public:在SQL Server 2008中每一个数据库用户都属于public数据库角色。当还没有对某个用户授予或者拒绝对安全对象的特定权限时,这该用户将据称授予该安全对象的public角色的权限,这个数据库角色不能被删除。内存