系统事件审核消息

在本页面

Note

仅在MongoDB Enterprise中可用。

Audit Message

事件审核功能可以以 JSON 格式记录事件。要配置审核输出,请参见Configure Auditing

记录的 JSON 消息具有以下语法:

{
  atype: <String>,
  ts : { "$date": <timestamp> },
  local: { ip: <String>, port: <int> },
  remote: { ip: <String>, port: <int> },
  users : [ { user: <String>, db: <String> }, ... ],
  roles: [ { role: <String>, db: <String> }, ... ],
  param: <document>,
  result: <int>
}
FieldTypeDescription
atypestring动作类型。参见审核事件操作,详细信息和结果
tsdocument包含事件的日期和 UTC 时间的文档,采用 ISO 8601 格式。
localdocument包含本地ip地址和正在运行的实例的port号的文档。
remotedocument包含与事件相关联的远程连接的ip地址和port编号的文档。
usersarray用户标识文件数组。由于 MongoDB 允许会话以每个数据库的不同用户身份登录,因此该阵列可以有多个用户。每个文档都包含一个用于用户名的user字段和一个用于该用户的身份验证数据库的db字段。
rolesarray指定授予用户roles的文档数组。每个文档都包含一个用于角色名称的role字段和一个用于与角色相关联的数据库的db字段。
paramdocument活动的详细信息。参见审核事件操作,详细信息和结果
resultinteger错误代码。参见审核事件操作,详细信息和结果

审核事件操作,详细信息和结果

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

atypeparamresult
authenticate{

user: <user name>,
db: <database>,
mechanism: <mechanism>
}
0-成功
18-身份验证失败
authCheck{
command: <name>,
ns: <database>.<collection>,
args: <command object>
}
ns字段是可选的。
args字段可能已删除。
0-成功
13-未经授权执行该操作。
默认情况下,审核系统仅记录授权失败。要使系统记录授权成功,请使用auditAuthorizationSuccess参数。 [1]
createCollection{ ns: <database>.<collection> }0-成功
createDatabase{ ns: <database> }0-成功
createIndex{
ns: <database>.<collection>,
indexName: <index name>,
indexSpec: <index specification>
}
0-成功
renameCollection{
old: <database>.<collection>,
new: <database>.<collection>
}
0-成功
dropCollection{ ns: <database>.<collection> }0-成功
dropDatabase{ ns: <database> }0-成功
dropIndex{
ns: <database>.<collection>,
indexName: <index name>
}
0-成功
createUser{
user: <user name>,
db: <database>,
customData: <document>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
customData字段是可选的。 0-成功
dropUser{
user: <user name>,
db: <database>
}
0-成功
dropAllUsersFromDatabase{ db: <database> }0-成功
updateUser{
user: <user name>,
db: <database>,
passwordChanged: <boolean>,
customData: <document>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
customData字段是可选的。 0-成功
grantRolesToUser{
user: <user name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
0-成功
revokeRolesFromUser{
user: <user name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
0-成功
createRole{
role: <role name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br],
privileges: [
{
resource: <resource document>,
actions: [ <action>, ...]
},
...
]
}
rolesprivileges字段是可选的。
有关资源文档的详细信息,请参见Resource Document。有关操作的列表,请参见Privilege Actions0-成功
updateRole{
role: <role name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br],
privileges: [
{
resource: <resource document>,
actions: [ <action>, ...]
},
...
]
}
rolesprivileges字段是可选的。
有关资源文档的详细信息,请参见Resource Document。有关操作的列表,请参见Privilege Actions0-成功
dropRole{
role: <role name>,
db: <database>
}
0-成功
dropAllRolesFromDatabase{ db: <database> }0-成功
grantRolesToRole{
role: <role name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
0-成功
revokeRolesFromRole{
role: <role name>,
db: <database>,
roles: [
{
角色:<role name>,
db: <database>
},
...
br]
}
0-成功
grantPrivilegesToRole{
role: <role name>,
db: <database>,
privileges: [
{
resource: <resource document>,
actions: [ <action>, ...]
},
...
]
}
有关资源文档的详细信息,请参见Resource Document。有关操作的列表,请参见Privilege Actions0-成功
revokePrivilegesFromRole{
role: <role name>,
db: <database name>,
privileges: [
{
resource: <resource document>,
actions: [ <action>, ...]
},
...
]
}
有关资源文档的详细信息,请参见Resource Document。有关操作的列表,请参见Privilege Actions0-成功
replSetReconfig
3.6.9 版中的新功能。
{
old: {
_id: <replicaSetName>,
version: <number>,
...
members: [ ...],
settings:
},
new: {
_id: <replicaSetName>,
version: <number>,
...
members: [ ...],
settings:
}
}
有关副本集配置文档的详细信息,请参见副本集配置0-成功
enableSharding{ ns: <database> }0-成功
shardCollection{
ns: <database>.<collection>,
key: <shard key pattern>,
options: { unique: <boolean> }
}
0-成功
addShard{
shard: <shard name>,
connectionString: <hostname>:<port>,
maxSize: <maxSize>
}
当分片是副本集时,connectionString包含副本集名称,并且可以包含副本集的其他成员。 0-成功
removeShard{ shard: <shard name> }0-成功
shutdown{ }
指示数据库关闭开始。 0-成功
applicationMessage{ msg: <custom message string> }
参见logApplicationMessage0-成功
[1]与仅记录授权失败相比,启用auditAuthorizationSuccess会降低性能。