Sql server 如何检查添加\角色\成员事件的DDL事件属性

Sql server 如何检查添加\角色\成员事件的DDL事件属性,sql-server,tsql,database-administration,Sql Server,Tsql,Database Administration,如何检查/查找DDL事件的事件属性 我想捕获事件上的角色名称添加角色成员和删除角色成员 像这样的 EVENTDATA().value('(/EVENT_INSTANCE/RoleName)[1]', 'nvarchar(256)') 但如何知道哪些属性可用于这些事件类型 我正在使用Sql Server 2016/2017/2019。多谢各位 Select * from sys.event_notification_event_types Where parent_type=10032 查询

如何检查/查找DDL事件的事件属性

我想捕获事件上的角色名称添加角色成员和删除角色成员 像这样的

EVENTDATA().value('(/EVENT_INSTANCE/RoleName)[1]',  'nvarchar(256)')
但如何知道哪些属性可用于这些事件类型

我正在使用Sql Server 2016/2017/2019。多谢各位

Select * from sys.event_notification_event_types
Where parent_type=10032
查询输出:

parent_type type    name
10029       10032   |   |   |   DDL_ROLE_EVENTS
10032       208     |   |   |   |   DROP_ROLE_MEMBER
10032       207     |   |   |   |   ADD_ROLE_MEMBER
10032       136     |   |   |   |   DROP_ROLE
10032       135     |   |   |   |   ALTER_ROLE
10032       134     |   |   |   |   CREATE_ROLE
就像你去拜访 您可以只了解
CREATE\u ROLE、ALTER\u ROLE、DROP\u ROLE
的事件属性和继承的事件属性,但是现在缺少关于
ADD\u ROLE\u MEMBER、DROP\u ROLE\u MEMBER
的信息,因为文档是SQL Server 2005的,SQL Server 2017/2019文档中没有提到事件属性详细信息。
这些属性类似于
TSQLCommand(string)、PostTime(datetime)、ObjectName(string)
等。

您是在寻找吗?是的,它的DDL事件并不明显或直观,但这在(
EVENT\u INSTANCE\u ADD\u ROLE\u MEMBER
EVENT\u INSTANCE\u DROP\u ROLE\u MEMBER
)中“记录在案”.Thank@JeroenMostert XML模式链接帮了大忙,但我还发现EVENTDATA()函数还将抛出事件中所有可能的值,而不包含数据类型。