sql-server - 为什么某些 DATABASE_ROLE_MEMBER_CHANGE_GROUP 审计事件会触发,而其他则不会?
问题描述
该语句触发和审计事件
EXEC sp_addrolemember N'db_data', N'BRANCH\NY-Users'
但是这个语句不会触发任何审计事件
EXEC master..sp_addsrvrolemember @loginame = N'BRANCH\MY_APP_User', @rolename = N'securityadmin'
我要求 DBA 在数据库中创建这些审计。
USE master;
GO
CREATE SERVER AUDIT IT_Security_server_audit
TO APPLICATION_LOG
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
)
GO
Alter Server Audit IT_Security_server_audit with(State=ON)
GO
CREATE SERVER AUDIT SPECIFICATION IT_Security_Server_Audit_Specification
FOR SERVER AUDIT IT_Security_server_audit
ADD ( SUCCESSFUL_LOGIN_GROUP )
,ADD ( AUDIT_CHANGE_GROUP )
,ADD ( BACKUP_RESTORE_GROUP )
,ADD ( DATABASE_CHANGE_GROUP )
,ADD ( DATABASE_OWNERSHIP_CHANGE_GROUP )
,ADD ( BROKER_LOGIN_GROUP)
,ADD ( DBCC_GROUP )
,ADD ( LOGIN_CHANGE_PASSWORD_GROUP )
,ADD ( APPLICATION_ROLE_CHANGE_PASSWORD_GROUP )
,ADD (SERVER_PRINCIPAL_CHANGE_GROUP)
,ADD (DATABASE_PERMISSION_CHANGE_GROUP)
,ADD (DATABASE_ROLE_MEMBER_CHANGE_GROUP)
WITH ( STATE = ON);
GO
--Create the database Audit spec
CREATE DATABASE AUDIT SPECIFICATION IT_Security_Database_Audit_Specification
FOR SERVER AUDIT IT_Security_server_audit
ADD ( AUDIT_CHANGE_GROUP )
,ADD ( BACKUP_RESTORE_GROUP )
,ADD ( DATABASE_CHANGE_GROUP )
,ADD ( DATABASE_OBJECT_CHANGE_GROUP )
,ADD ( DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP )
,ADD ( DATABASE_OBJECT_PERMISSION_CHANGE_GROUP )
,ADD ( DATABASE_PRINCIPAL_CHANGE_GROUP )
,ADD ( DATABASE_ROLE_MEMBER_CHANGE_GROUP )
,ADD ( DBCC_GROUP )
,ADD ( SCHEMA_OBJECT_CHANGE_GROUP )
,ADD ( SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP )
,ADD ( DATABASE_ROLE_MEMBER_CHANGE_GROUP )
,ADD ( SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP )
-- 2012-newer allowed events
,ADD ( DATABASE_LOGOUT_GROUP )
,ADD ( FAILED_DATABASE_AUTHENTICATION_GROUP )
,ADD ( USER_DEFINED_AUDIT_GROUP )
,ADD ( SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP )
-- New GROUPS
,ADD ( DATABASE_OWNERSHIP_CHANGE_GROUP )
,ADD ( DATABASE_PERMISSION_CHANGE_GROUP )
,ADD ( LOGIN_CHANGE_PASSWORD_GROUP )
WITH ( STATE = ON);
go
从审计事件的角度来看,“sp_addrolemember”和“sp_addsrvrolemember”有什么区别?我上面的审核是否没有涵盖这两种情况?
解决方案
我找到了!我缺少 SERVER_ROLE_MEMBER_CHANGE_GROUP。
ALTER SERVER AUDIT SPECIFICATION IT_Security_Server_Audit_Specification
FOR SERVER AUDIT IT_Security_server_audit
ADD (SERVER_ROLE_MEMBER_CHANGE_GROUP);
GO
推荐阅读
- python - Python中不可子类化的对象
- java - 使用 android 复选框崩溃
- swift - Swift UI 按钮动作函数
- java - MCP 无法识别的选项:-Xincgc
- python - 'geckodriver' 可执行文件需要通过 Selenium 使用 GeckoDriver 和 Firefox 在 PATH 中
- c# - 用户定义的从接口到类的转换
- twitter-bootstrap - Bootstrap 5 中的多级下拉菜单
- javascript - 使用 Node.js 同时接受文件和文本输入
- r - 在数据表的单元格中显示多个字符串,可以通过单击它们来删除这些字符串
- parallel-processing - 使用 CUDA/thrust 在数组中设置每个 float4 的一个元素