如何Audit所有的SP?

sqlfool 2012-10-26 12:12:39
Hi, 我想使用SQL Server的Audit功能去审计用户user1执行的所有SP

因为SP太多(5/600百个), 若一个个添加太累, 另外未来可能有新增加的还有再次手工添加, 这样就很不方便.
不知道有没比较好的办法, 把用户有权限执行的SP都加到审计里面, 而不用每个SP都列举出来? 先谢了

注意: 修改下面的这句为Audit所有的SP就可以
ADD (EXECUTE ON OBJECT::[dbo].[sp_test1] BY [user1])

-----------------------------------原代码--------------------------------------------
--1 创建Server Audit
USE master
GO
CREATE SERVER AUDIT SrvAuditX
TO FILE (FILEPATH='D:\MSSQL', MAXSIZE=5GB, MAX_ROLLOVER_FILES=0 )
WITH (QUEUE_DELAY = 3000)

--2 创建DB Audit SPEC
USE [TestDB]
GO

CREATE DATABASE AUDIT SPECIFICATION MainDbAuditSpec
FOR SERVER AUDIT SrvAuditX
ADD (EXECUTE ON OBJECT::[dbo].[sp_test1] BY [user1])

WITH (STATE=ON)


--3 --启用SQL Server审计
USE master
GO
ALTER SERVER AUDIT SrvAuditX
WITH (STATE=ON)

...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqlfool 2012-10-26
  • 打赏
  • 举报
回复
但是触发器开销比较大, 我原来使用Audit功能审计表的修改也很方便, 如果能审计所有SP而不用一一添加就太棒了!
發糞塗牆 2012-10-26
  • 打赏
  • 举报
回复
可以考虑使用DDL触发器,把修改存放到一个记录表中
sqlfool 2012-10-26
  • 打赏
  • 举报
回复
若创建Server级或DB级的组, 有没可以限制只审计SP和指定用户的
DATABASE_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_ACCESS_GROUP

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧