killAllSessionsByPattern
정의
killAllSessionsByPattern
버전 3.6에 새로 추가되었습니다.
killAllSessionsByPattern
명령은 지정된 패턴과 일치하는 모든 세션을 종료합니다. [1]
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { killAllSessionsByPattern: [ <pattern>, ... ] } )
이 명령은 일치시킬 패턴을 지정하는 문서 배열을 사용합니다.
패턴 | 설명 |
---|---|
{ lsid: { id : <UUID> } } | 종료할 세션 ID의 UUID 부분을 지정합니다. |
{ uid: <BinData> } | 종료할 세션 소유자의 해시를 지정합니다. |
{ users: [ { user: <user>, db: <dbname> }, ... ] } | 종료할 세션의 소유자를 지정합니다. 추가 권한이 필요합니다. 액세스 제어를 참조하세요. |
{ roles: [ { role: <role>, db: <dbname> }, ... ] } | 종료할 세션의 소유자에게 할당된 역할을 지정합니다. 추가 권한이 필요합니다. 액세스 제어를 참조하세요. |
모든 세션을 종료하려면 빈 배열을 지정합니다. [1]
기존 세션을 보려면 $listSessions
작업 또는 $listLocalSessions
을 참조하세요.
[1] | (1, 2) killAllSessionsByPattern 작업은 준비된 상태의 트랜잭션 이 있는 세션을 무시합니다. 자세한 내용은 동작 을 참조하세요. |
행동
진행 중인 작업
세션을 종료하면 세션에서 진행 중인 모든 작업이 종료되고 이러한 작업과 관련된 열려 있는 커서가 모두 닫힙니다.
종료된 세션 가용성
종료된 세션은 여전히 현재 세션으로 나열될 수 있으며, 향후 작업에서 종료된 세션을 사용할 수 있습니다. 기존 세션을 보려면 $listSessions
작업 또는 $listLocalSessions
를 참조하세요.
준비된 상태의 트랜잭션이 있는 세션
killAllSessionsByPattern
작업은 준비된 상태의 트랜잭션 이 있는 세션을 무시합니다. 준비된 상태의 트랜잭션은 커밋 코디네이터가 "sendingPrepare"
action
을 완료한 여러 샤드에 걸쳐 있는 쓰기 작업이 있는 트랜잭션을 나타냅니다.
액세스 제어
배포에서 인증/권한 부여를 시행하는 경우 명령을 실행하려면 killAllSessionsByPattern
killAnySession
권한 작업이 있어야 합니다.
users
또는 roles
포함하는 패턴의 경우 cluster 리소스에 대한 impersonate
조치를 부여하는 권한도 있어야 합니다.
참고
사용자는 killAnySession
권한 조치가 없어도 자신의 세션을 종료할 수 있습니다.
예제
killAllSessions
다음 작업은 모든 세션을 종료합니다.
db.runCommand( { killAllSessionsByPattern: [ ] } )
특정 사용자에 대한 모든 세션 종료
다음 작업은 지정된 uid
를 가지고 있고 소유자에게 지정된 역할이 있는 모든 세션을 종료합니다.
db.runCommand( { killAllSessionsByPattern: [ { "uid" : BinData(0,"oBRA45vMY78p1tv6kChjQPTdYsnCHi/kA/fFMZTIV1o=") }, { roles: [ { role: "readWrite", db: "test" } ] } ] } )