Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

自管理部署中的系统事件审核消息

在此页面上

  • 审核消息
  • 审核事件的操作、详情和结果

注意

系统事件审核消息在 MongoDB Enterprise MongoDB Atlas 中可用。

要了解有关 MongoDB Atlas 中此功能的更多信息,请参阅 Atlas 文档中的“设置数据库审核”和“查看和下载 MongoDB 日志”。

事件审核功能可以将事件记录为 JSON 格式。要配置审核输出,请参阅配置对自托管部署的审核。

5.0 版本中的更改

记录的 JSON 消息采用以下语法:

{
atype: <string>,
ts : { $date: <timestamp> },
uuid : { $binary: <string>, $type: <string> },
local: { ip: <string>, port: <int> || isSystemUser: <boolean> || unix: <string> },
remote: { ip: <string>, port: <int> || isSystemUser: <boolean> || unix: <string> },
users : [ { user: <string>, db: <string> }, ... ],
roles: [ { role: <string>, db: <string> }, ... ],
param: <document>,
result: <int>
}
字段
类型
说明
atype
字符串
ts
文档
包含 ISO 8601 格式的事件日期和 UTC 时间的文档。

uuid

文档

包含消息标识符的文档。

UUID 标识客户端连接。使用 UUID 追踪连接到该客户端的审核事件。

$type 字段的值为 BSON 类型 04,这表示 $binary 字段包含 UUID。

版本 5.0 中的新增功能

local

文档

包含运行实例的 ip 地址和 port 编号的文档。

从 MongoDB 5.0 开始,也可以是具有以下字段之一的文档:

  • isSystemUser 这表示导致事件的用户是否为系统用户。记录由在同一服务器实例上运行的后台进程启动的自引用作业。

  • unix 包含 MongoDB 套接字文件路径,前提是客户端通过 Unix 域套接字连接。

注意

从 MongoDB 5.0开始, local字段已弃用。 请改用clientMetadata审核消息中的localEndpoint字段。

5.0 版本中的更改

remote
文档

包含事件相关传入连接的 ip 地址和 port 编号的文档。

从 MongoDB 5.0 开始,也可以是具有以下字段之一的文档:

  • isSystemUser 这表示导致事件的用户是否为系统用户。记录由在同一服务器实例上运行的后台进程启动的自引用作业。

  • unix 包含 MongoDB 套接字文件路径,前提是客户端通过 Unix 域套接字连接。

5.0 版本中的更改

users
阵列
用户身份证明文档的数组。因为 MongoDB 支持会话在每个数据库中使用不同的用户登录,所以该数组可能有多个用户。每个文档都包含一个用于用户名的 user 字段和一个用于该用户的身份验证数据库的 db 字段。
roles
阵列
指定授予用户的角色的文档数组。每个文档都包含用于角色名称的 role 字段和用于与该角色关联的数据库的 db 字段。
param
文档
活动的具体细节。 请参阅审核事件操作、详细信息和结果。
result
整型

下表列出了每个 atype 或操作类型、关联的 param 详细信息和 result 值(如果有)。

atype
param
result

authenticate

{
user: <user name>,
db: <database>,
mechanism: <mechanism>
}

从 MongoDB 5.0 开始,authenticate

  • 记录不完整的身份验证尝试。

  • 包括 mechanism 中的主体名称和标识符,用于 x.509、Amazon Web Services Identity and Access Management (AWS-IAM) 等外部身份验证机制(请参阅 authMechanism)。

5.0 版本中的更改

0 - Success
18 - Authentication Failed
334 - Mechanism Unavailable
337 - Authentication Abandoned

authCheck

{
command: <name>,
ns: <database>.<collection>,
args: <command object>
}
ns field is optional.
args field may be redacted.

默认情况下,审核系统仅记录授权失败的情况。要使系统记录授权成功,请使用 auditAuthorizationSuccess 参数。

启用 auditAuthorizationSuccess 比仅记录授权失败更能降低性能。

从 MongoDB 5.0 开始,内部生成的操作不会记录 authCheck

5.0 版本中的更改

0 - Success
13 - Unauthorized to perform the operation.

clientMetadata

{
localEndpoint : {
ip : <IP address of running instance>,
port : <port of running instance>
} || {
unix : <MongoDB socket file path if connecting through
a Unix domain socket>
},
clientMetadata : {
driver : {
name : <client driver name>,
version : <client driver version>
},
os : {
type : <client operating system type>,
name : <client operating system name>,
architecture : <client operating system architecture>,
version : <client operating system version>
},
platform : <client platform name>,
application : {
name : <client application name>
}
}
}

包含客户端元数据。在客户端运行 hello 命令时记录。

提示

另请参阅:

版本 5.0 中的新增功能

0 - 成功
{
ns: <database>.<collection || view>,
viewOn: <database>.<collection>,
pipeline: [ <pipeline definition> ]
}

在以下情况下记录:

  • 集合已创建。

  • 创建视图,并在 ns 字段中记录视图名称。

从 MongoDB 5.0 开始,为视图记录以下附加信息:

  • viewOn 字段,包含视图的数据库和集合。

  • pipeline 字段,包含视图的聚合管道定义。

5.0 版本中的更改

0 - 成功
createDatabase
{ ns: <database> }
0 - 成功
{
ns: <database>.<collection>,
indexName: <index name>,
indexSpec: <index specification>,
indexBuildState: <index build state>
}

indexBuildState 的可能值为:

  • IndexBuildStarted

  • IndexBuildSucceeded

  • IndexBuildAborted

从 MongoDB 5.0 开始,createIndex 审核事件包括:

  • 在索引创建的开始和结束时记录,并包含一条指示索引是否成功创建的消息。

  • 归因于引起 createIndex 审核事件的操作的原始用户。

  • 如果集合具有索引,则记录 createCollection 事件。

5.0 版本中的更改

0 - Success
276 - Index build aborted.

审核消息包含 createIndex 审核事件的结果代码 276,其中 IndexBuildState 设置为 IndexBuildAborted。审核消息包含 createIndex 审核事件的结果代码 0,其中 IndexBuildState 设置为 IndexBuildStartedIndexBuildSucceeded

directAuthMutation

{
document: {
<collection modifications>
},
ns: <database>.<collection>,
operation: <database operation>
}

当数据库操作直接修改 admin.system.usersadmin.system.roles 集合的内容时进行记录。

版本 5.0 中的新增功能

0 - 成功
renameCollection
{
old: <database>.<collection>,
new: <database>.<collection>
}
0 - 成功
{
ns: <database>.<collection || view>,
viewOn: <database>.<collection>,
pipeline: [ <pipeline definition> ]
}

在以下情况下记录:

  • 集合已删除。

  • 删除了视图,视图名称记录在 ns 字段中。

从 MongoDB 5.0 开始,为视图记录以下附加信息:

  • viewOn 字段,包含视图的数据库和集合。

  • pipeline 字段,包含视图的聚合管道定义。

此外,从 MongoDB 5.0 开始,发生 dropDatabase 事件时,会记录一个 dropCollection 审核事件。

5.0 版本中的更改

0 - Success
26 - NamespaceNotFound

如果集合或视图不存在,则审核消息将返回代码显示为 result: 26

{ ns: <database> }
0 - 成功
{
ns: <database>.<collection>,
indexName: <index name>
}
0 - 成功
{
user: <user name>,
db: <database>,
customData: <document>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}

customData 字段为可选字段。

0 - 成功
{
user: <user name>,
db: <database>
}
0 - 成功
dropAllUsersFromDatabase
{ db: <database> }
0 - 成功

getClusterParameter

{
requestedClusterServerParameters: <parameters>
}
0 - 成功

setClusterParameter

{
originalClusterServerParameter: <original parameter value>,
updatedClusterServerParameter": <new parameter value>
}
0 - 成功

updateCachedClusterServerParameter

{
originalClusterServerParameter: <original parameter value>,
updatedClusterServerParameter": <new parameter value>
}

由于以下原因变更参数时记录:

  • 传播 setClusterParameter 命令

  • 复制事件,例如回滚

  • 从配置服务器刷新新的集群参数值 mongos

0 - 成功
updateUser
{
user: <user name>,
db: <database>,
passwordChanged: <boolean>,
customData: <document>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}

customData 字段为可选字段。

0 - 成功
grantRolesToUser
{
user: <user name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}
0 - 成功
revokeRolesFromUser
{
user: <user name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}
0 - 成功
{
role: <role name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
],
privileges: [
{
resource: <resource document>,
actions: [ <action>, ... ]
},
...
]
}

rolesprivileges 字段是可选的。

有关资源文档的详细信息,请参阅有关自托管部署的资源文档。有关操作列表,请参阅自管理部署的特权操作。

0 - 成功
updateRole
{
role: <role name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
],
privileges: [
{
resource: <resource document>,
actions: [ <action>, ... ]
},
...
]
}

rolesprivileges 字段是可选的。

有关资源文档的详细信息,请参阅有关自托管部署的资源文档。有关操作列表,请参阅自管理部署的特权操作。

0 - 成功
{
role: <role name>,
db: <database>
}
0 - 成功
dropAllRolesFromDatabase
{ db: <database> }
0 - 成功
grantRolesToRole
{
role: <role name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}
0 - 成功
revokeRolesFromRole
{
role: <role name>,
db: <database>,
roles: [
{
role: <role name>,
db: <database>
},
...
]
}
0 - 成功
grantPrivilegesToRole
{
role: <role name>,
db: <database>,
privileges: [
{
resource: <resource document>,
actions: [ <action>, ... ]
},
...
]
}

有关资源文档的详细信息,请参阅有关自托管部署的资源文档。有关操作列表,请参阅自管理部署的特权操作。

0 - 成功
revokePrivilegesFromRole
{
role: <role name>,
db: <database name>,
privileges: [
{
resource: <resource document>,
actions: [ <action>, ... ]
},
...
]
}

有关资源文档的详细信息,请参阅有关自托管部署的资源文档。有关操作列表,请参阅自管理部署的特权操作。

0 - 成功
replSetReconfig
{
old: {
_id: <replicaSetName>,
version: <number>,
...
members: [ ... ],
settings: { ... }
},
new: {
_id: <replicaSetName>,
version: <number>,
...
members: [ ... ],
settings: { ... }
}
}

有关副本集配置文档的详细信息,请参阅自管理副本集配置。

0 - 成功
{ ns: <database> }
0 - 成功
shardCollection
{
ns: <database>.<collection>,
key: <shard key pattern>,
options: { unique: <boolean> }
}
0 - 成功
{
shard: <shard name>,
connectionString: <hostname>:<port>,
}

当分片是副本集时,connectionString 包括副本集名称,并且可以包含副本集的其他节点。

0 - 成功
{
ns: <database>.<collection>,
key: <shard key pattern>
}
0 - 成功
{ shard: <shard name> }
0 - 成功
{ }

指示开始关闭数据库。

0 - 成功
{ msg: <custom message string> }

请参阅 logApplicationMessage

0 - 成功

logout

{
reason: <string>,
initialUsers: [ <document>, ... ],
updatedUsers: [ <document>, ... ],
}
reason 可以为以下任一项:
  • “显式退出<数据库>”

  • “由于客户端连接关闭而导致隐式注销”

initialUsers 是一个文档数组,其中包含注销前在当前客户端上通过身份验证的用户。

updatedUsers 是一个文档数组,其中包含注销事件后应在当前客户端上进行身份验证的用户。

initialUsersupdatedUsers 中的每个文档都包含:
  • user:用户名

  • dbuser 已通过身份验证的数据库

版本 5.0 中的新增功能

0 - 成功

startup

{
startupOptions: <document>,
initialClusterServerParameter: <array of documents>
}
  • startupOptions 包含节点启动后的所有选项

  • initialClusterServerParameters 包含节点在启动结束时的集群服务器参数的初始值:

    • 从存储加载后(针对 mongod

    • 从配置服务器刷新后(针对 mongos)。

版本 5.0 中的新增功能

在版本 6.1 中更改

0 - 成功

后退

配置筛选器

来年

自管理部署的网络和配置强化