문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

setAuditConfig

이 페이지의 내용

  • 정의
  • 구문
  • 명령 필드
  • 행동
  • 예제

중요

버전 7 에서 더 이상 사용되지 않습니다.1: auditConfig 클러스터 매개변수를 대신 사용합니다.

setAuditConfig

버전 5.0에 추가.

setAuditConfig 는 런타임에 mongodmongos 서버 인스턴스에 대한 새 감사 구성을 설정하는 관리 명령입니다.

db.adminCommand( { command } ) 메서드를 사용하여 admin 데이터베이스에 대해 setAuditConfig 를 실행합니다.

명령은 다음과 같은 구문을 가집니다:

db.adminCommand(
{
setAuditConfig: 1,
filter: <Filter Document>,
auditAuthorizationSuccess: <Boolean>
}
)

명령에는 다음과 같은 필드가 있습니다.

필드
유형
설명
setAuditConfig
integer
filter
문서
auditAuthorizationSuccess
부울
모든 권한 부여 또는 실패한 액세스 권한만 기록

런타임에 를 사용하려면 감사 를 활성화합니다.setAuditConfig

auditAuthorizationSuccessauthCheck 작업에 대한 권한 부여 성공 감사를 활성화합니다. 읽기 및 쓰기 작업을 감사하려면 매개 변수 값이 true 여야 합니다. 그러나 auditAuthorizationSuccess false 인 경우 감사 시스템은 권한 부여 실패만 기록하므로 성능에 미치는 영향이 적습니다.

구성 업데이트는 oplog 메커니즘을 통해 배포되므로 mongod 노드의 업데이트가 세컨더리 노드에 매우 빠르게 배포됩니다. mongos 노드에는 다른 배포 메커니즘이 있습니다. mongos 노드는 구성 업데이트를 위해 정기적으로 프라이머리 서버를 poll 해야 합니다. 샤드가 업데이트된 구성 세부 정보를 위해 프라이머리 서버를 폴링하기 전에 프라이머리 서버에서 를 실행하고 getAuditConfig 샤드 에서 setAuditConfig 를 실행하는 경우 폴링 지연으로 인해 오래된 데이터가 표시될 수 있습니다.

이 예에서는 감사 메시지의 형식이 다시 지정되었습니다. 로그 파일에서 한 줄에 표시됩니다.

컬렉션이 생성되거나 삭제될 때 감사를 활성화합니다.

db.admin.runCommand(
{
setAuditConfig: 1,
filter:
{
atype:
{
$in: [ "createCollection", "dropCollection" ]
}
},
auditAuthorizationSuccess: false
}
)

inventory 컬렉션이 sales 데이터베이스에 생성되면 감사 시스템은 다음과 같은 메시지를 기록합니다.

{
"atype" : "createCollection",
"ts" : { "$date" : "2021-08-09T13:45:05.372+00:00" },
"uuid" : { "$binary" : "RKU/YLizS6K9se2GUU7ZVQ==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51918 },
"users" : [],
"roles" : [],
"param" : { "ns" : "sales.inventory" },
"result" : 0
}

inventory 컬렉션이 sales 데이터베이스에서 제거되면 감사 시스템은 다음과 같은 메시지를 기록합니다.

{
"atype" : "dropCollection",
"ts" : { "$date" : "2021-08-09T13:45:00.661+00:00" },
"uuid" : { "$binary" : "0gle4/pSQli+LUcz43ykag==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51928 },
"users" : [],
"roles" : [],
"param" : { "ns" : "sales.inventory" },
"result" : 0
}

auditAuthorizationSuccesstrue 로 설정하고 읽기 및 쓰기 작업을 감사할 관심 있는 작업을 포함하는 필터를 만듭니다.

db.admin.runCommand(
{
setAuditConfig: 1,
filter:
{
atype: "authCheck",
"param.command":
{
$in: [ "find", "insert", "delete", "update", "findandmodify" ]
}
},
auditAuthorizationSuccess: true
}
)

find 명령을 사용하여 sales 데이터베이스에서 inventory 컬렉션을 검색하여 다음과 같은 감사 로그 항목을 생성합니다.

{
"atype" : "authCheck",
"ts" : { "$date" : "2021-08-09T15:28:10.788+00:00" },
"uuid" : { "$binary" : "ngwRt5CRTZqgE4TsfleoqQ==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51930 },
"users" : [],
"roles" : [],
"param" : {
"command" : "find",
"ns" : "sales.inventory",
"args" : {
"find" : "inventory",
"filter" : { "widget" : 1 },
"lsid" : { "id" : { "$binary" : "FNWNxiitQ8GHKrHx8eJSbg==", "$type" : "04" } },
"$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1628521381, "i" : 1 } },
"signature" : { "hash" : { "$binary" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "$type" : "00" },
"keyId" : { "$numberLong" : "0" } } },
"$db" : "sales"
}
},
"result" : 0
}

다음도 참조하세요.

돌아가기

rotateCertificates

다음

setClusterParameter