Configure Audit Filters¶
On this page
MongoDB Enterprise
supports auditing of various operations. When
enabled, the audit facility, by
default, records all auditable operations as detailed in
Audit Event Actions, Details, and Results. To specify which events to record,
the audit feature includes the --auditFilter option.
--auditFilter Option¶
The --auditFilter option takes a string representation of a
query document of the form:
- The
<field>can be any field in the audit message, including fields returned in the param document. - The
<expression>is a query condition expression.
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Examples¶
Filter for Multiple Operation Types¶
The following example audits only the createCollection
and dropCollection actions by using the filter:
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Filter on Authentication Operations on a Single Database¶
The <field> can include any field in the audit message. For authentication operations (i.e.
atype: "authenticate"), the audit messages include a db field
in the param document.
The following example audits only the authenticate operations
that occur against the test database by using the filter:
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
To filter on all authenticate operations across
databases, use the filter { atype: "authenticate" }.
Filter on Collection Creation and Drop Operations for a Single Database¶
The <field> can include any field in the audit message. For collection creation and drop
operations (i.e. atype: "createCollection" and atype:
"dropCollection"), the audit messages include a namespace ns
field in the param document.
The following example audits only the createCollection and
dropCollection operations that occur against the test database
by using the filter:
Note
The regular expression requires two backslashes (\\) to escape
the dot (.).
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Filter by Authorization Role¶
The following example audits operations by users with
readWrite role on the test database, including users
with roles that inherit from readWrite, by using the filter:
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Filter on Read and Write Operations¶
To capture read and write operations in the
audit, you must also enable the audit system to log authorization
successes using the auditAuthorizationSuccess parameter.
[1]
Note
Enabling auditAuthorizationSuccess degrades performance
more than logging only the authorization failures.
The following example audits the find(),
insert(), remove(),
update(), save(), and
findAndModify() operations by using the filter:
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
Filter on Read and Write Operations for a Collection¶
To capture read and write operations in the
audit, you must also enable the audit system to log authorization
successes using the auditAuthorizationSuccess parameter.
[1]
Note
Enabling auditAuthorizationSuccess degrades performance
more than logging only the authorization failures.
The following example audits the find(),
insert(), remove(),
update(), save(), and
findAndModify() operations for the collection
orders in the database test by using the filter:
To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.
To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.
| [1] | (1, 2) You can enable auditAuthorizationSuccess
parameter without enabling --auth; however, all operations will
return success for authorization checks. |