Docs Menu

$listSessions

이 페이지의 내용

$listSessions

버전 3.6에 새로 추가되었습니다.

config 데이터베이스의 system.sessions collection에 저장된 모든 세션을 나열합니다. 이러한 세션은 MongoDB deployment의 모든 구성원이 볼 수 있습니다.

중요

사용자가 mongod 또는 mongos 인스턴스에서 세션을 생성하면 처음에는 세션의 기록이 인스턴스의 인메모리(인스턴스 로컬)에만 존재합니다. 인스턴스는 주기적으로 캐시된 세션을 config 데이터베이스의 system.sessions 컬렉션에 동기화하며, 이 때 $listSessions 및 배포의 모든 멤버가 해당 세션을 볼 수 있습니다. 세션 레코드가 system.sessions 컬렉션에 존재할 때까지는 $listLocalSessions 작업을 통해서만 세션을 나열할 수 있습니다.

$listSessions를 실행하려면 파이프라인의 첫 번째 단계여야 합니다.

이 단계에는 다음 구문이 있습니다.

{ $listSessions: <document> }

$listSessions 단계는 다음 내용 중 하나가 포함된 문서를 사용합니다.

필드
설명

{ }

액세스 제어와 함께 실행하는 경우 현재 인증된 사용자에 대한 모든 세션을 반환합니다.

액세스 제어 없이 실행하는 경우 모든 세션을 반환합니다.

{ users: [ { user: <user>, db: <db> }, ... ] }

지정된 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 cluster에서 listSessions 조치가 있는 권한이 있어야 다른 사용자의 세션을 나열할 수 있습니다.

{ allUsers: true }

모든 사용자에 대한 모든 세션을 반환합니다. 액세스 제어와 함께 실행하는 경우 인증된 사용자는 클러스터에서 listSessions 작업이 있는 권한이 있어야 합니다.

트랜잭션에는 $listSessions이 허용되지 않습니다.

system.sessions 컬렉션에서 다음 집계 작업은 모든 세션을 나열합니다.

참고

액세스 제어를 사용하여 실행하는 경우 현재 사용자는 cluster에 대해 listSessions 조치가 있는 권한이 있어야 합니다.

use config
db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )

system.sessions 2} collection에서 다음 집계 연산은 지정된 사용자 myAppReader@test에 대한 모든 세션을 나열합니다:

참고

액세스 제어와 함께 실행 중이고 현재 사용자가 지정된 사용자가 아닌 경우 현재 사용자에게 cluster에 대한 listSessions 조치가 있는 권한이 있어야 합니다.

use config
db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )

system.sessions collection에서 액세스 제어와 함께 실행하는 경우 다음 집계 연산은 현재 사용자의 모든 세션을 나열합니다.

use config
db.system.sessions.aggregate( [ { $listSessions: { } } ] )

액세스 제어 없이 실행하면 연산은 모든 세션을 나열합니다.

이 페이지의 내용