개요
이 가이드 에서는 MongoDB Server 에서 사용할 수 있는 인증 메커니즘을 사용하여 MongoDB 에 인증하는 방법을 학습 수 있습니다. 인증 메커니즘은 운전자 와 서버 연결하기 전에 보안을 보장하기 위해 클라이언트 의 ID를 확인하는 프로세스입니다.
MongoDB 에디션 호환성
다음 표에는 MongoDB 에서 지원하는 인증 메커니즘 및 각 메커니즘이 호환되는 MongoDB Server 에디션이 나열되어 있습니다. 메커니즘의 이름을 클릭하여 애플리케이션 에서 메커니즘을 사용하는 방법에 대해 자세히 학습 .
인증 메커니즘 | Atlas | Enterprise Advanced | Community |
---|---|---|---|
예 | 예 | 예 | |
예 | 예 | 예 | |
예 | No | No | |
예 | 예 | No | |
No | 예 | No |
인증 문제 해결
이 섹션에서는 일반적인 인증 오류와 해결 방법에 대해 설명합니다.
인증을 켜고 로컬 데이터베이스를 읽을 때 OperationFailure가 발생합니다.
local
데이터베이스 읽으려고 할 때 다음 오류가 발생하는 경우:
Mongo::Error::OperationFailure: not authorized on local to execute command { find: "oplog.rs", filter: { ts: { $gte: Timestamp 1497449043000|0 } }, sort: { $natural: 1 } } (13)
사용자가 로컬 데이터베이스 에 대한 권한을 갖도록 사용자의 역할을 조정하여 이 문제를 해결할 수 있습니다. 특별히 oplog 에 액세스 하려는 경우 로컬 데이터베이스의 oplog.rs
컬렉션 에 대한 읽기 액세스 있는 사용자 지정 역할 만들 수도 있습니다. 역할에 대한 자세한 내용은 서버 매뉴얼의 역할 관리 방법 을 참조하세요.
Mongo::Auth::권한이 없는 사용자에게 액세스 권한이 부여되지 않음
일부 사용자가 다음 오류가 발생했다고 보고합니다:
Mongo::Auth::Unauthorized: User ... is not authorized to access ...
Ruby 운전자 버전 2.5 이상으로 업그레이드한 후 운전자 기본값 으로 SCRAM 권한 부여 메커니즘을 사용하도록 변경되었습니다. 이 오류는 사용자를 생성할 때 사용한 권한 부여 메커니즘이 운전자 에서 사용하는 권한 부여 메커니즘과 일치하지 않는 경우 발생할 수 있습니다. mongoid.yml
파일 에서 auth_mech
옵션을 사용하여 선호하는 권한 부여 메커니즘을 지정할 수 있습니다.