다음 절차는 독립형 mongod 인스턴스에서 클라이언트 인증을 위한 SCRAM을 설정합니다.
복제본 세트 또는 샤딩된 클러스터에 SCRAM 인증을 사용하려면 키 파일 인증으로 자체 관리형 복제본 세트 배포를 참조하세요.
중요
동일한 사용자에 대해 SCRAM 인증과 다른 인증 유형을 동시에 사용할 수 없습니다.
절차
액세스 제어 없이 MongoDB 시작
액세스 제어 없이 독립형 mongod 인스턴스를 시작합니다.
터미널을 열고 mongod 사용자로 다음 명령을 실행합니다:
mongod --port 27017 --dbpath /var/lib/mongodb 
이 튜토리얼의 mongod 인스턴스에서는 port 27017 및 /var/lib/mongodb 데이터 디렉토리를 사용합니다.
이 튜토리얼에서는 /var/lib/mongodb 디렉토리가 존재하고 기본값이 dbPath라고 가정합니다. 필요에 따라 다른 데이터 디렉토리 또는 포트를 지정할 수 있습니다.
사용자 관리자 만들기
중요
로컬 호스트 예외
액세스 제어를 활성화하기 전이나 후에 사용자 관리자를 생성할 수 있습니다. 사용자를 만들기 전에 액세스 제어를 활성화하면 MongoDB는 admin 데이터베이스에서 사용자 관리자를 만들 수 있는 로컬 호스트 예외를 제공합니다. 생성된 후에는 추가 사용자를 생성하려면 사용자 관리자로 인증해야 합니다.
mongosh 사용:
- admin데이터베이스로 전환합니다.
- userAdminAnyDatabase및- readWriteAnyDatabase역할을 가진- myUserAdmin사용자를 추가합니다:
use admin db.createUser(   {     user: "myUserAdmin",     pwd: passwordPrompt(), // or cleartext password     roles: [       { role: "userAdminAnyDatabase", db: "admin" },       { role: "readWriteAnyDatabase", db: "admin" }     ]   } ) 
팁
passwordPrompt() 메서드는 암호를 입력하라는 메시지를 표시합니다. 암호를 문자열로 직접 지정할 수도 있습니다. 암호가 화면에 표시되어 셸 기록에 암호가 유출될 가능성을 방지하려면 passwordPrompt() 방법을 사용하는 것이 좋습니다.
userAdminAnyDatabase 역할을 통해 이 사용자는 다음을 수행할 수 있습니다.
- 사용자 만들기 
- 사용자에게 역할 부여 또는 취소 
- 사용자 지정 역할 생성 또는 수정 
필요에 따라 사용자에게 기본 제공 역할 또는 사용자 지정 역할을 추가로 할당할 수 있습니다.
이 예시 admin에서 사용자를 만드는 데이터베이스는 사용자의 인증 데이터베이스입니다. 사용자는 이 데이터베이스에 대한 인증이 필요하지만 다른 데이터베이스에서도 역할을 가질 수 있습니다. 사용자의 인증 데이터베이스는 사용자의 권한을 제한하지 않습니다.
액세스 제어를 사용하여 MongoDB 인스턴스 다시 시작
mongod 인스턴스를 종료합니다. mongosh를 사용하여 다음 명령을 실행합니다.
db.adminCommand( { shutdown: 1 } ) 
mongosh를 종료합니다.
액세스 제어가 활성화된 상태에서 mongod를 시작합니다.
- 명령줄에서 - mongod를 시작하는 경우- --auth명령줄 옵션을 추가합니다:- mongod --auth --port 27017 --dbpath /var/lib/mongodb 
- 구성 파일을 사용하여 - mongod를 시작하는 경우- security.authorization구성 파일 설정을 추가합니다:- security: - authorization: enabled 
이제 이 인스턴스에 연결하는 클라이언트는 자신을 인증해야 하며 할당된 역할에 따라 결정된 작업만 수행할 수 있습니다.
중요
로컬 호스트 예외
액세스 제어를 활성화하기 전이나 후에 사용자를 생성할 수 있습니다. 사용자를 만들기 전에 액세스 제어를 활성화하면 MongoDB는 admin 데이터베이스에서 사용자 관리자를 만들 수 있는 로컬 호스트 예외를 제공합니다. 생성된 후에는 추가 사용자를 생성하려면 사용자 관리자로 인증해야 합니다.
사용자 관리자로 연결 및 인증
mongosh 를 사용하여 다음을 수행할 수 있습니다.
-u
<username>, -p 및 --authenticationDatabase <database> 명령줄 옵션으로 mongosh(을)를 시작합니다.
mongosh --port 27017  --authenticationDatabase \     "admin" -u "myUserAdmin" -p 
메시지가 표시되면 비밀번호를 입력합니다.
mongosh(을)를 사용하여 데이터베이스 배포에 연결합니다.
mongosh --port 27017 
mongosh 에서 인증 데이터베이스 (이 경우 admin)로 전환하고 db.auth(<username>, <pwd>) 메서드를 사용하여 인증합니다.
use admin db.auth("myUserAdmin", passwordPrompt()) // or cleartext password 
팁
passwordPrompt() 메서드는 암호를 입력하라는 메시지를 표시합니다. 암호를 문자열로 직접 지정할 수도 있습니다. 암호가 화면에 표시되어 셸 기록에 암호가 유출될 가능성을 방지하려면 passwordPrompt() 방법을 사용하는 것이 좋습니다.
메시지가 표시되면 비밀번호를 입력합니다.
다음 단계
복제본 세트 또는 샤딩된 클러스터에 SCRAM 인증을 사용하려면 키 파일 인증으로 자체 관리형 복제본 세트 배포를 참조하세요.