Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

자체 관리형 배포에서 비밀번호 및 사용자 지정 데이터 변경

이 페이지의 내용

  • 개요
  • 고려 사항
  • 전제 조건
  • 절차

적절한 권한이 있는 사용자는 자신의 비밀번호와 사용자 지정 데이터를 변경할 수 있습니다. Custom data는 선택적으로 사용자 정보를 저장합니다.

이 절차에서 사용할 강력한 비밀번호를 생성하려면 openssl 유틸리티의 rand 명령을 사용할 수 있습니다. 예를 들어, 48개의 유사 임의 바이트로 구성된 base64로 인코딩된 문자열을 생성하려면 다음 옵션이 포함된 openssl rand를 실행합니다.

openssl rand -base64 48

자신의 비밀번호와 사용자 지정 데이터를 수정하려면 사용자 데이터베이스에서 각각 changeOwnPasswordchangeOwnCustomData 조치를 부여할 수 있는 권한이 있어야 합니다.

1

역할 이 있는 사용자와 같이 사용자 및 역할을 mongod mongos userAdminAnyDatabase 관리 수 있는 권한이 있는 또는 에 연결합니다. 다음 절차에서는 자체 관리형 배포서버에서 액세스 제어 활성화에 생성된 myUserAdmin 를 사용합니다.

mongosh --port 27017 -u myUserAdmin -p --authenticationDatabase 'admin'

-p 명령줄 옵션에 비밀번호를 지정하지 않으면 mongosh에서 비밀번호를 입력하라는 메시지를 표시합니다.

2

admin 데이터베이스에서 changeOwnPasswordchangeOwnCustomData을 가진 새 역할을 create합니다.

use admin
db.createRole(
{ role: "changeOwnPasswordCustomDataRole",
privileges: [
{
resource: { db: "", collection: ""},
actions: [ "changeOwnPassword", "changeOwnCustomData" ]
}
],
roles: []
}
)
3

test 데이터베이스에서 "changeOwnPasswordCustomDataRole" 역할이 생성된 신규 사용자를 create합니다. 예를 들어, 다음 작업은 기본 제공 역할 readWrite과 사용자가 생성한 "changeOwnPasswordCustomDataRole"을 모두 가진 사용자를 생성합니다.

메서드/명령 호출에서 암호를 직접 지정하는 대신 passwordPrompt() 메서드를 다양한 사용자 인증/관리 메서드/명령과 함께 사용하여 암호를 묻는 메시지를 표시할 수 있습니다. 그러나 이전 버전의 mongo shell에서와 마찬가지로 비밀번호를 직접 지정할 수도 있습니다.

use test
db.createUser(
{
user:"user123",
pwd: passwordPrompt(), // or cleartext password
roles:[ "readWrite", { role:"changeOwnPasswordCustomDataRole", db:"admin" } ]
}
)

기존 사용자에게 새 역할을 부여하려면 db.grantRolesToUser()를 사용하세요.

1

적절한 권한이 있는 사용자로 mongod 또는 mongos에 연결합니다.

예를 들어, 다음 작업은 전제 조건 섹션에서 생성된 user123으로 MongoDB에 연결합니다.

mongosh --port 27017 -u user123 --authenticationDatabase 'test' -p

-p 명령줄 옵션에 비밀번호를 지정하지 않으면 mongosh(이)가 비밀번호를 묻는 메시지를 표시합니다.

전제 조건 섹션에 지정된 권한이 있는지 확인하고 사용자 정보를 보려면 usersInfo 명령을 showPrivileges 옵션과 함께 사용합니다.

2

db.updateUser() 메서드를 사용하여 비밀번호 및 사용자 지정 데이터를 업데이트합니다.

예를 들어, 다음 작업은 사용자의 비밀번호를 KNlZmiaNUp0B로 변경하고 사용자 지정 데이터를 { title: "Senior Manager" }로 변경합니다.

메서드/명령 호출에서 암호를 직접 지정하는 대신 passwordPrompt() 메서드를 다양한 사용자 인증/관리 메서드/명령과 함께 사용하여 암호를 묻는 메시지를 표시할 수 있습니다. 그러나 이전 버전의 mongo shell에서와 마찬가지로 비밀번호를 직접 지정할 수도 있습니다.

use test
db.updateUser(
"user123",
{
pwd: passwordPrompt(), // or cleartext password
customData: { title: "Senior Manager" }
}
)

메시지가 표시되면 비밀번호를 입력합니다.

돌아가기

사용자 및 역할 관리