killAllSessions
정의
killAllSessions
버전 3.6에 새로 추가되었습니다.
killAllSessions
명령은 지정된 사용자의 모든 세션을 종료합니다. [1]
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
이 명령은 각 문서가 사용자와 사용자의 인증 데이터베이스를 지정하는 문서 배열을 사용합니다. 빈 배열을 지정하여 시스템의 모든 사용자에 대한 모든 세션을 종료합니다. [1]
기존 세션을 보려면 $listSessions
작업 또는 $listLocalSessions
을 참조하세요.
[1] | (1, 2) killAllSessions 작업은 준비된 상태의 트랜잭션 이 있는 세션을 무시합니다. 자세한 내용은 동작 을 참조하세요. |
액세스 제어
배포에서 인증/권한 부여를 killAnySession
시행하는 killAllSessions
경우 명령을 실행하려면 가 있어야 합니다.
참고
사용자는 killAnySession
권한 조치 없이도 자신의 세션을 종료할 수 있습니다.
행동
진행 중인 작업
세션을 종료하면 세션에서 진행 중인 모든 작업이 종료되고 이러한 작업과 관련된 열려 있는 커서가 모두 닫힙니다.
종료된 세션 가용성
종료된 세션은 여전히 현재 세션으로 나열될 수 있으며, 향후 작업에서 종료된 세션을 사용할 수 있습니다. 기존 세션을 보려면 $listSessions
작업 또는 $listLocalSessions
를 참조하세요.
준비된 상태의 트랜잭션이 있는 세션
killAllSessions
작업은 준비된 상태의 트랜잭션 이 있는 세션을 무시합니다. 준비된 상태의 트랜잭션은 커밋 코디네이터가 "sendingPrepare"
action
을 완료한 여러 샤드에 걸쳐 있는 쓰기 작업이 있는 트랜잭션을 나타냅니다.
예제
killAllSessions
다음 작업은 시스템의 모든 사용자에 대한 모든 세션을 종료합니다.
db.runCommand( { killAllSessions: [ ] } )
특정 사용자에 대한 모든 세션 종료
다음 작업은 db1
데이터베이스의 사용자 appReader
및 db2
데이터베이스의 사용자 reportWriter
세션을 모두 종료합니다.
db.runCommand( { killAllSessions: [ { user: "appReader", db: "db1" }, { user: "reportWriter", db: "db2" } ] } )