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