AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

시스템 이벤트 감사 메시지

참고

시스템 이벤트 감사 메시지는 MongoDB EnterpriseMongoDB Atlas 에서 사용할 수 있습니다.

MongoDB Atlas 의 이 기능 에 학습 보려면 데이터베이스 감사 설정 및 MongoDB 로그 보기 및 다운로드에 대한 Atlas 설명서를 참조하세요.

이벤트 감사 기능은 이벤트를 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

문서

이벤트의 날짜와 UTC 기준 시간이 포함된 ISO 8601 형식의 문서입니다.

uuid

문서

메시지 식별자가 포함된 문서입니다.

UUID 는 클라이언트 연결을 식별합니다. UUID를 사용하여 해당 클라이언트 에 연결된 감사 이벤트를 추적 .

$type 필드의 값은 BSON 유형 04이며, 이는 $binary 필드에 UUID가 포함되어 있음을 나타냅니다.

버전 5.0의 신규 항목입니다.

local

문서

실행 중인 인스턴스의 ip 주소와 port 번호를 포함하는 문서입니다.

MongoDB 5.0부터는 다음의 필드 중 하나가 있는 문서가 될 수도 있습니다.

  • isSystemUser 이벤트를 일으킨 사용자가 시스템 사용자인지 여부를 나타냅니다. 동일한 서버 인스턴스에서 실행되는 백그라운드 프로세스에 의해 시작된 자체 참조 작업에 대해 기록됩니다.

  • unix 클라이언트가 Unix 도메인 소켓을 통해 연결하는 경우 MongoDB 소켓 파일 경로가 포함됩니다.

참고

MongoDB 부터 5.0 local 필드 더 이상 사용되지 localEndpoint 않습니다. 대신 clientMetadata 감사 메시지의 필드 사용합니다.

버전 5.0에서 변경되었습니다.

remote

문서

이벤트와 관련된 수신 연결의 ip 주소 및 port 번호를 포함하는 문서입니다.

MongoDB 5.0부터는 다음의 필드 중 하나가 있는 문서가 될 수도 있습니다.

  • isSystemUser 이벤트를 일으킨 사용자가 시스템 사용자인지 여부를 나타냅니다. 동일한 서버 인스턴스에서 실행되는 백그라운드 프로세스에 의해 시작된 자체 참조 작업에 대해 기록됩니다.

  • unix 클라이언트가 Unix 도메인 소켓을 통해 연결하는 경우 MongoDB 소켓 파일 경로가 포함됩니다.

버전 5.0에서 변경되었습니다.

users

배열

사용자 식별 문서의 배열입니다. MongoDB는 세션이 데이터베이스당 다른 사용자로 로그인할 수 있도록 허용하기 때문에 이 배열에는 둘 이상의 사용자가 있을 수 있습니다. 각 문서에는 사용자 이름에 대한 user 필드와 해당 사용자의 인증 데이터베이스에 대한 db 필드가 포함됩니다.

roles

배열

사용자에게 부여된 역할을 지정하는 문서의 배열입니다. 각 문서에는 역할 이름을 나타내는 role 필드와 역할과 관련된 데이터베이스의 db 필드가 포함됩니다.

param

문서

이벤트에 관한 구체적인 세부 정보입니다. 감사 이벤트 조치, 세부 정보 및 결과를 참조하세요.

result

integer

오류 코드입니다. 감사 이벤트 조치, 세부 정보 및 결과를 참조하세요.

다음 표에는 각 atype 또는 조치 유형에 관한 관련 param 세부 정보 및 result 값(있는 경우)이 나열되어 있습니다.

atype
param
result

authenticate

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

MongoDB 5.0부터 다음을 authenticate:

  • 불완전한 인증 시도에 대해 기록됩니다.

  • x.509 및 AWS-IAM(Amazon Web Services ID 및 액세스 관리)과 같은 외부 인증 메커니즘에 대한 mechanism의 기본 이름 및 식별자를 포함합니다(authMechanism 참고).

버전 5.0에서 변경되었습니다.

0 - 성공
18 - 인증 실패
334 - 메커니즘 사용 불가

authCheck

{
command: <name>,
ns: <database>.<collection>,
args: <command object>
}

ns 필드 는 선택 사항입니다.
args 필드가 삭제될 수 있습니다.

기본적으로 감사 시스템은 권한 부여 실패만 기록합니다. 시스템에서 인증 성공을 기록할 수 있도록 하려면 auditAuthorizationSuccess 매개 변수를 활성화하세요.

auditAuthorizationSuccess를 사용하도록 설정하면 인증 실패만 기록하는 것보다 성능이 더 저하됩니다.

MongoDB 5.0부터는 내부적으로 생성되는 조치에 대해 authCheck이 기록되지 않습니다.

버전 5.0에서 변경되었습니다.

0 - 성공
13 - 작업을 수행할 권한이 없습니다.

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 - 성공
276 - 인덱스 생성이 중단되었습니다.

감사 메시지에는 IndexBuildStateIndexBuildAborted 로 설정된 createIndex 감사 이벤트에 대한 결과 코드 276이 포함됩니다. 감사 메시지에는 IndexBuildStateIndexBuildStarted 또는 IndexBuildSucceeded로 설정된 createIndex 감사 이벤트에 대한 결과 코드 0가 포함됩니다.

directAuthMutation

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

데이터베이스 작업이 admin.system.users 또는 admin.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 - 성공
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 명령의 전파

  • 롤백 등의 복제 이벤트

  • 다음의 config 서버에서 새 클러스터 매개변수 값을 새로 고칩니다. 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 다음 중 하나가 될 것입니다.
  • "<database>에서 명시적 로그아웃"

  • "클라이언트 연결 종료로 인한 암시적 로그아웃"

initialUsers 로그아웃하기 전에 현재 클라이언트에서 인증된 사용자를 포함하는 문서 배열입니다.

updatedUsers 로그아웃 이벤트 이후 현재 클라이언트에서 인증될 것으로 예상되는 사용자를 포함하는 문서 배열입니다.

initialUsersupdatedUsers의 각 문서에는 다음이 포함됩니다.
  • user: 사용자 이름

  • db샤드가 복제본 세트인 경우, user에는 복제본 세트 이름이 포함되고 복제본 세트의 다른 멤버가 포함될 수 있습니다.

버전 5.0의 신규 항목입니다.

0 - 성공

startup

{
startupOptions: <document>,
initialClusterServerParameter: <array of documents>
}
  • startupOptions 노드 시작 후 사용할 수 있는 모든 옵션이 포함됩니다.

  • initialClusterServerParameters 는 스타트업이 끝날 때 노드에 있는 클러스터 서버 매개 변수의 초기 값을 포함합니다.

    • 스토리지에서 로드된 후(mongod의 경우)

    • config 서버에서 새로고침 후( mongos의 경우)

버전 5.0의 신규 항목입니다.

버전 6.1에서 변경되었습니다.

0 - 성공