none
SQL Server 2005 sa用户没有权限执行sp_trace_setstatus RRS feed

  • 问题

  • SQL Server 2005 sa用户没有权限执行sp_trace_setstatus

    exec sp_trace_setstatus 1,0

    无论是用sa用户还是windows集成用户都提示没有权限执行sp_trace_setstatus

    提示:

    消息 8189,级别 14,状态 32,过程 sp_trace_setstatus,第 1 行
    您没有运行 'SP_TRACE_SETSTATUS' 的权限。

    查询sys.traces目前有如下trc

    SELECT * FROM sys.traces

    id status path max_size 200

    1 1 \\?\D:\Database\MSSQL.1\MSSQL\DATA\audittrace20130722133616_64.trc

    请求提供解决办法,谢谢。

    2013年7月23日 5:28

答案

  • sa 的权限是没办法调整的, 按道理是不会出现这样的情况

    你可以进入管理员模式试下看能否执行

    2013年7月23日 7:26
  • 执行下面的语句看看你的sa是不是sysadmin
    select IS_SRVROLEMEMBER ('sysadmin')

    Please Mark As Answer if it is helpful.


    2013年7月23日 8:24
  • 审核不能这样停的。你只能去把审核停掉。

    不过你要问一下,谁建的审核。如果不是测试用途的话,最好不要停。


    想不想时已是想,不如不想都不想。

    2013年7月23日 10:47
    版主
  • But default mini trace file name doesn't start with audit and is in log folder. You can double check c2 auditing status with sp_configure.
    2013年7月24日 1:56
  • 从 Trace 的文件名来看, 应该是开启了 C2 审核导致的(之前没有注意文件名)

    SQL 2012 中, 这个选项的表现有点奇怪

    首先, 这个选项配置了之后, 要重新启动服务才生效 , 你可以执行 EXEC sys.sp_configure 'c2 audit mode' 看下 run_value 列值, 这点没什么奇怪的

    奇怪的是, 重启之后, 这个配置生效了(run_value 和 config_value 一样), 但是对应的 Trace 没有工作, 如果是启用,则在 sys.traces 中看不到记录, 如果是关闭, 则 sys.traces 中仍然有记录, 需要再配置一次和再重新启动服务, 这个 Trace 才工作(sys.traces中存在或者消失对应的记录)

    所以楼主可以试试执行 EXEC sys.sp_configure 'c2 audit mode', 0; RECONFIGURE;, 重新启动服务器再看看(如果还有, 再执行这个配置语句和重新一次, 2012 上我是要执行两次和重启两次才有效果)

    2013年7月24日 5:45
  • LZ的是SQL2005

    我的机器是SQL2005,测试了一下

    关闭C2审核跟踪的话就报错

    exec sp_trace_setstatus 1,0

    消息 8189,级别 14,状态 32,过程 sp_trace_setstatus,第 1 行
    您没有运行 'SP_TRACE_SETSTATUS' 的权限。

    开启C2审核跟踪反而执行成功

    exec sp_trace_setstatus 1,1

    命令已成功完成。

    ---------------------------------------------------------------------

    如果要真的关闭C2审核跟踪,需要使用[sp_configure]

    [sys].[sp_configure] @configname = 'c2 audit mode', -- varchar(35)
        @configvalue = 0 -- int
    RECONFIGURE WITH override 
    GO

    然后重启SQLSERVER服务

    在我的机器里测试成功

    2013年7月24日 9:25

全部回复

  • sa 的权限是没办法调整的, 按道理是不会出现这样的情况

    你可以进入管理员模式试下看能否执行

    2013年7月23日 7:26
  • 执行下面的语句看看你的sa是不是sysadmin
    select IS_SRVROLEMEMBER ('sysadmin')

    Please Mark As Answer if it is helpful.


    2013年7月23日 8:24
  • 审核不能这样停的。你只能去把审核停掉。

    不过你要问一下,谁建的审核。如果不是测试用途的话,最好不要停。


    想不想时已是想,不如不想都不想。

    2013年7月23日 10:47
    版主
  • Sounds someone enabled c2 auditing on the server.
    2013年7月23日 13:18
  • SQL 2005 开始的版本, 默认配置下, 有开启默认跟踪, 这样在 sys.traces 中始终有一条记录, 可以通过 is_default 列来判断, 如果该值为1, 表示是默认跟踪对应的 trace 信息

    默认跟踪的配置可以通过 sp_configure 'default trace enabled' 来控制, 这个是高级选项, 如果提示没有这个选项, 表示你应该通过 so_configure 'show advanced options', 1; RECONFIGURE 开启高级选项功能

    2013年7月24日 0:55
  • But default mini trace file name doesn't start with audit and is in log folder. You can double check c2 auditing status with sp_configure.
    2013年7月24日 1:56
  • 关闭SQLSERVER默认的事件跟踪 Default Trace 
    --在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG就不会生成trc文件
    sp_configure 'show advanced options' , 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'default trace enabled' , 0 ;
    GO
    RECONFIGURE;
    GO
    2013年7月24日 3:29
  • OP is not about default trace.
    2013年7月24日 3:34
  • 我用的是集成验证的方式来执行sp_trace_setstatus

    如果想关闭SQLSERVER的默认跟踪,请使用SP_CONFIGURE 将其关闭

    如果是执行sp_trace_setstatus权限不足,请LZ再检查一下权限


    2013年7月24日 3:47
  • 我的机器里,Windows用户的权限

    2013年7月24日 3:47
  • C2审核跟踪我也没有开启

    2013年7月24日 3:48
  • C2审核跟踪我也没有开启

    sp_trace_setstatus:http://msdn.microsoft.com/en-us/library/ms176034.aspx

    User must have ALTER TRACE permission.

    2013年7月24日 4:51
  • 从 Trace 的文件名来看, 应该是开启了 C2 审核导致的(之前没有注意文件名)

    SQL 2012 中, 这个选项的表现有点奇怪

    首先, 这个选项配置了之后, 要重新启动服务才生效 , 你可以执行 EXEC sys.sp_configure 'c2 audit mode' 看下 run_value 列值, 这点没什么奇怪的

    奇怪的是, 重启之后, 这个配置生效了(run_value 和 config_value 一样), 但是对应的 Trace 没有工作, 如果是启用,则在 sys.traces 中看不到记录, 如果是关闭, 则 sys.traces 中仍然有记录, 需要再配置一次和再重新启动服务, 这个 Trace 才工作(sys.traces中存在或者消失对应的记录)

    所以楼主可以试试执行 EXEC sys.sp_configure 'c2 audit mode', 0; RECONFIGURE;, 重新启动服务器再看看(如果还有, 再执行这个配置语句和重新一次, 2012 上我是要执行两次和重启两次才有效果)

    2013年7月24日 5:45
  • LZ的是SQL2005

    我的机器是SQL2005,测试了一下

    关闭C2审核跟踪的话就报错

    exec sp_trace_setstatus 1,0

    消息 8189,级别 14,状态 32,过程 sp_trace_setstatus,第 1 行
    您没有运行 'SP_TRACE_SETSTATUS' 的权限。

    开启C2审核跟踪反而执行成功

    exec sp_trace_setstatus 1,1

    命令已成功完成。

    ---------------------------------------------------------------------

    如果要真的关闭C2审核跟踪,需要使用[sp_configure]

    [sys].[sp_configure] @configname = 'c2 audit mode', -- varchar(35)
        @configvalue = 0 -- int
    RECONFIGURE WITH override 
    GO

    然后重启SQLSERVER服务

    在我的机器里测试成功

    2013年7月24日 9:25
  • 再执行SELECT * FROM sys.[traces]就看不到C2审核跟踪了

    2013年7月24日 9:27
  • 不一定是C2 Audit,没记错的话,SQL 2005已经开始支持audi了。

    想不想时已是想,不如不想都不想。

    2013年7月26日 3:30
    版主
  • audit 怡红公子大侠说的是审计跟踪???
    2013年7月26日 5:19