Docs Menu
Docs Home
/ /
μ‚¬μš©μž 관리

db.updateUser()

db.updateUser( username, update, writeConcern )

λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©μž ν”„λ‘œν•„μ„ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. ν•„λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜λ©΄ 이전 ν•„λ“œμ˜ 값이 μ™„μ „νžˆ λ°”λ€λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” μ‚¬μš©μžμ˜ roles 배열에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ ν¬ν•¨λ©λ‹ˆλ‹€.

κ²½κ³ 

roles λ°°μ—΄ 을 μ—…λ°μ΄νŠΈ ν•˜λ©΄ 이전 λ°°μ—΄μ˜ 값이 μ™„μ „νžˆ λ°”λ€λ‹ˆλ‹€. μ‚¬μš©μžμ˜ κΈ°μ‘΄ 역할을 λͺ¨λ‘ λ°”κΎΈμ§€ μ•Šκ³  역할을 μΆ”κ°€ν•˜κ±°λ‚˜ 제거 ν•˜λ €λ©΄ db.grantRolesToUser() λ˜λŠ” db.revokeRolesFromUser() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

db.updateUser() λ©”μ„œλ“œλŠ” λ‹€μŒ ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€.

팁

λ©”μ„œλ“œ/λͺ…λ Ή ν˜ΈμΆœμ— λΉ„λ°€λ²ˆν˜Έλ₯Ό 직접 μ§€μ •ν•˜λŠ” λŒ€μ‹  passwordPrompt() λ©”μ„œλ“œλ₯Ό λ‹€μ–‘ν•œ μ‚¬μš©μž 인증/관리 λ©”μ„œλ“œ/λͺ…λ Ήκ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λΌλŠ” λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이전 λ²„μ „μ˜ mongo shell μ—μ„œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ λΉ„λ°€λ²ˆν˜Έλ₯Ό 직접 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: passwordPrompt(), // Or "<cleartext password>"
authenticationRestrictions: [
{
clientSource: ["<IP>" | "<CIDR range>", ...],
serverAddress: ["<IP>", | "<CIDR range>", ...]
},
...
],
mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
passwordDigestor: "<server|client>"
},
writeConcern: { <write concern> }
)

db.updateUser() λ©”μ„œλ“œμ—λŠ” λ‹€μŒκ³Ό 같은 μΈμˆ˜κ°€ μ‚¬μš©λ©λ‹ˆλ‹€.

Parameter
μœ ν˜•
μ„€λͺ…

username

λ¬Έμžμ—΄

μ—…λ°μ΄νŠΈν•  μ‚¬μš©μžμ˜ μ΄λ¦„μž…λ‹ˆλ‹€.

update

λ¬Έμ„œ

μ‚¬μš©μžμ˜ λŒ€μ²΄ 데이터가 ν¬ν•¨λœ λ¬Έμ„œμž…λ‹ˆλ‹€. 이 λ°μ΄ν„°λŠ” μ‚¬μš©μžμ˜ ν•΄λ‹Ή 데이터λ₯Ό μ™„μ „νžˆ λŒ€μ²΄ν•©λ‹ˆλ‹€.

writeConcern

λ¬Έμ„œ

선택 μ‚¬ν•­μž…λ‹ˆλ‹€. μž‘μ—…μ— λŒ€ν•œ μ“°κΈ° κ³ λ € μˆ˜μ€€μž…λ‹ˆλ‹€. μ“°κΈ° κ³ λ € 사양을 μ°Έμ‘°ν•˜μ„Έμš”.

update λ¬Έμ„œλŠ” μ—…λ°μ΄νŠΈν•  ν•„λ“œμ™€ ν•΄λ‹Ή μƒˆ 값을 μ§€μ •ν•©λ‹ˆλ‹€. update λ¬Έμ„œμ˜ λͺ¨λ“  ν•„λ“œλŠ” 선택 μ‚¬ν•­μ΄μ§€λ§Œ ν•˜λ‚˜ μ΄μƒμ˜ ν•„λ“œλ₯Ό 포함해야 ν•©λ‹ˆλ‹€.

update λ¬Έμ„œμ— λ‹€μŒκ³Ό 같은 ν•„λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€:

ν•„λ“œ
μœ ν˜•
μ„€λͺ…

customData

λ¬Έμ„œ

선택 사항. λͺ¨λ“  μž„μ˜ μ •λ³΄μž…λ‹ˆλ‹€.

roles

λ°°μ—΄

선택 사항. μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬λœ μ—­ν• μž…λ‹ˆλ‹€. roles 배열에 λŒ€ν•œ μ—…λ°μ΄νŠΈλŠ” 이전 λ°°μ—΄μ˜ 값을 μž¬μ •μ˜ν•©λ‹ˆλ‹€.

pwd

λ¬Έμžμ—΄

선택 사항. μ‚¬μš©μžμ˜ λΉ„λ°€λ²ˆν˜Έμž…λ‹ˆλ‹€. 값은 λ‹€μŒ 쀑 ν•˜λ‚˜μΌ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 일반 ν…μŠ€νŠΈ λ¬Έμžμ—΄λ‘œ 된 μ‚¬μš©μžμ˜ λΉ„λ°€λ²ˆν˜Έ

  • passwordPrompt() 은(λŠ”) μ‚¬μš©μžμ˜ λΉ„λ°€λ²ˆν˜Έλ₯Ό λ¬»λŠ” λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

λ©”μ„œλ“œ/λͺ…λ Ή ν˜ΈμΆœμ— λΉ„λ°€λ²ˆν˜Έλ₯Ό 직접 μ§€μ •ν•˜λŠ” λŒ€μ‹  passwordPrompt() λ©”μ„œλ“œλ₯Ό λ‹€μ–‘ν•œ μ‚¬μš©μž 인증/관리 λ©”μ„œλ“œ/λͺ…λ Ήκ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λΌλŠ” λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이전 λ²„μ „μ˜ mongo shell μ—μ„œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ λΉ„λ°€λ²ˆν˜Έλ₯Ό 직접 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

authenticationRestrictions

λ°°μ—΄

선택 사항. μ„œλ²„κ°€ μ‚¬μš©μžμ—κ²Œ μ μš©ν•˜λŠ” 인증 μ œν•œ μ‚¬ν•­μž…λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ„œλ²„μ— μ—°κ²°ν•  수 μžˆκ±°λ‚˜ μ„œλ²„κ°€ μ‚¬μš©μžλ₯Ό μˆ˜λ½ν•  수 μžˆλŠ” IP μ£Όμ†Œ 및 CIDR λ²”μœ„μ˜ λͺ©λ‘μ„ μ§€μ •ν•©λ‹ˆλ‹€.

버전 3.6에 μƒˆλ‘œ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

mechanisms

λ°°μ—΄

선택 사항. μ‚¬μš©μž 자격 증λͺ…에 λŒ€ν•œ νŠΉμ • SCRAM λ©”μ»€λ‹ˆμ¦˜(1개 λ˜λŠ” μ—¬λŸ¬ 개)μž…λ‹ˆλ‹€. authenticationMechanismsλ₯Ό μ§€μ •ν•˜λ©΄ authenticationMechanisms의 ν•˜μœ„ μ§‘ν•©λ§Œ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΉ„λ°€λ²ˆν˜Έ 없이 λ©”μ»€λ‹ˆμ¦˜ ν•„λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 경우 μ‚¬μš©μžμ˜ ν˜„μž¬ λ©”μ»€λ‹ˆμ¦˜μ˜ ν•˜μœ„ μ§‘ν•©λ§Œ μ§€μ •ν•  수 있으며, μ§€μ •λœ λ©”μ»€λ‹ˆμ¦˜(1개 λ˜λŠ” μ—¬λŸ¬ 개)에 λŒ€ν•œ κΈ°μ‘΄ μ‚¬μš©μž 자격 증λͺ…λ§Œ μœ μ§€λ©λ‹ˆλ‹€.

λ©”μ»€λ‹ˆμ¦˜κ³Ό ν•¨κ»˜ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 경우 μ‚¬μš©μžμ— λŒ€ν•œ 자격 증λͺ… μ„ΈνŠΈκ°€ μ €μž₯λ©λ‹ˆλ‹€.

μœ νš¨ν•œ 값은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • "SCRAM-SHA-1"

    • SHA-1 ν•΄μ‹œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • "SCRAM-SHA-256"

    • SHA-256 ν•΄μ‹œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

    • featureCompatibilityVersion이 4.0으둜 μ„€μ •λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

    • passwordDigestorκ°€ serverμ—¬μ•Ό ν•©λ‹ˆλ‹€.

passwordDigestor

λ¬Έμžμ—΄

선택 μ‚¬ν•­μž…λ‹ˆλ‹€. μ„œλ²„ λ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ 쀑 μ–΄λŠ μͺ½μ—μ„œ λΉ„λ°€λ²ˆν˜Έλ₯Ό 해독할지λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

μ‚¬μš© κ°€λŠ₯ν•œ 값은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • "server" (κΈ°λ³Έκ°’)
    μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° λ‹€μ΄μ œμŠ€νŠΈλ˜μ§€ μ•Šμ€ λΉ„λ°€λ²ˆν˜Έλ₯Ό μˆ˜μ‹ ν•˜μ—¬ λΉ„λ°€λ²ˆν˜Έλ₯Ό λ‹€μ΄μ œμŠ€νŠΈν•©λ‹ˆλ‹€.
  • "client" (SCRAM-SHA-256κ³Ό ν˜Έν™˜λ˜μ§€ μ•ŠμŒ)
    ν΄λΌμ΄μ–ΈνŠΈλŠ” λΉ„λ°€λ²ˆν˜Έλ₯Ό λ‹€μ΄μ œμŠ€νŠΈν•˜κ³ , 이후 λ‹€μ΄μ œμŠ€νŠΈλœ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„œλ²„μ— μ „λ‹¬ν•©λ‹ˆλ‹€.

roles ν•„λ“œμ—μ„œ κΈ°λ³Έ 제곡 μ—­ν• κ³Ό μ‚¬μš©μž μ •μ˜ 역할을 λͺ¨λ‘ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

db.updateUser()κ°€ μ‹€ν–‰λ˜λŠ” λ™μΌν•œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜λŠ” 역할을 μ§€μ •ν•˜λ €λ©΄ μ—­ν• μ˜ 이름과 ν•¨κ»˜ 역할을 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

"readWrite"

λ˜λŠ” λ‹€μŒκ³Ό 같이 λ¬Έμ„œλ‘œ 역할을 μ§€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

{ role: "<role>", db: "<database>" }

λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜λŠ” 역할을 μ§€μ •ν•˜λ €λ©΄ λ¬Έμ„œλ₯Ό μ‚¬μš©ν•˜μ—¬ 역할을 μ§€μ •ν•©λ‹ˆλ‹€.

버전 3.6에 μƒˆλ‘œ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

authenticationRestrictions λ¬Έμ„œμ—λŠ” λ‹€μŒ ν•„λ“œλ§Œ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€. authenticationRestrictions λ¬Έμ„œμ— 인식할 수 μ—†λŠ” ν•„λ“œκ°€ ν¬ν•¨λ˜μ–΄ 있으면 μ„œλ²„μ—μ„œ 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€.

ν•„λ“œ 이름
κ°’
μ„€λͺ…

clientSource

IP μ£Όμ†Œ 및/λ˜λŠ” CIDR λ²”μœ„μ˜ λ°°μ—΄

μ‘΄μž¬ν•˜λŠ” 경우, μ‚¬μš©μžλ₯Ό 인증할 λ•Œ μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ IP μ£Όμ†Œκ°€ μ§€μ •λœ λͺ©λ‘μ— μžˆκ±°λ‚˜ λͺ©λ‘μ— μžˆλŠ” CIDR λ²”μœ„μ— μ†ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ˜ IP μ£Όμ†Œκ°€ μ—†λŠ” 경우 μ„œλ²„λŠ” μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

serverAddress

IP μ£Όμ†Œ 및/λ˜λŠ” CIDR λ²”μœ„μ˜ λ°°μ—΄

ν΄λΌμ΄μ–ΈνŠΈκ°€ μ—°κ²°ν•  수 μžˆλŠ” IP μ£Όμ†Œ λ˜λŠ” CIDR λ²”μœ„μ˜ λͺ©λ‘μž…λ‹ˆλ‹€. μ‘΄μž¬ν•˜λŠ” 경우, μ„œλ²„λŠ” μ£Όμ–΄μ§„ λͺ©λ‘μ˜ IP μ£Όμ†Œλ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈμ˜ 연결이 μŠΉμΈλ˜μ—ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. 인식할 수 μ—†λŠ” IP μ£Όμ†Œλ₯Ό 톡해 연결이 수락된 경우 μ„œλ²„λŠ” μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ€‘μš”

μ‚¬μš©μžκ°€ 인증 μ œν•œμ΄ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μ—¬λŸ¬ 역할을 μƒμ†ν•˜λŠ” 경우 ν•΄λ‹Ή μ‚¬μš©μžλŠ” μ‚¬μš©ν•  수 μ—†κ²Œ λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ clientSource ν•„λ“œκ°€ ["198.51.100.0"]인 μ—­ν• κ³Ό clientSource ν•„λ“œκ°€ ["203.0.113.0"]인 λ‹€λ₯Έ 역할을 μƒμ†ν•˜λŠ” 경우 μ„œλ²„λŠ” μ‚¬μš©μžλ₯Ό 인증할 수 μ—†μŠ΅λ‹ˆλ‹€.

MongoDB의 인증에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 인증을 μ°Έμ‘°ν•˜μ„Έμš”.

db.updateUser() λ©”μ„œλ“œλŠ” updateUser λͺ…령을 λž˜ν•‘ν•©λ‹ˆλ‹€.

이 λ©”μ„œλ“œλŠ” λ‹€μŒ ν™˜κ²½μ—μ„œ ν˜ΈμŠ€νŒ…λ˜λŠ” λ°°ν¬μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ€‘μš”

이 λͺ…령은 MongoDB Atlas ν΄λŸ¬μŠ€ν„°μ—μ„œ μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λͺ¨λ“  λͺ…령에 λŒ€ν•œ Atlas 지원 에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ μ§€μ›λ˜μ§€ μ•ŠλŠ” λͺ…령을 μ°Έμ‘°ν•˜μ„Έμš”.

  • MongoDB Enterprise: MongoDB의 ꡬ독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 μ†ŒμŠ€ μ‚¬μš© κ°€λŠ₯ 무료 자체 관리 버전

볡제본 μ„ΈνŠΈμ—μ„œ μ‹€ν–‰ν•  경우, db.updateUser()λŠ” κΈ°λ³Έκ°’μœΌλ‘œ "majority" μ“°κΈ° κ³ λ €(write concern)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€ν–‰λ©λ‹ˆλ‹€.

κ²½κ³ 

기본적으둜 db.updateUser()λŠ” passwordPrompt()λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λ„ μ§€μ •λœ λͺ¨λ“  데이터λ₯Ό 일반 ν…μŠ€νŠΈλ‘œ MongoDB μΈμŠ€ν„΄μŠ€μ— μ „μ†‘ν•©λ‹ˆλ‹€. db.updateUser()μ—μ„œ 보낸 μ•”ν˜Έλ₯Ό ν¬ν•¨ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 톡신을 λ³΄ν˜Έν•˜λ €λ©΄ TLS 전솑 μ•”ν˜Έν™”λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. TLS 전솑 μ•”ν˜Έν™”λ₯Ό ν™œμ„±ν™”ν•˜λŠ” 방법에 λŒ€ν•œ 지침은 TLS/SSL을 μœ„ν•œ mongod 및 mongos ꡬ성을 μ°Έμ‘°ν•˜μ„Έμš”.

MongoDBλŠ” λΉ„λ°€λ²ˆν˜Έλ₯Ό 일반 ν…μŠ€νŠΈλ‘œ μ €μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λΉ„λ°€λ²ˆν˜ΈλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ 전솑 μ‹œ 그리고 TLS 전솑 μ•”ν˜Έν™”κ°€ ν™œμ„±ν™”λ˜μ§€ μ•Šμ€ κ²½μš°μ—λ§Œ μ·¨μ•½ν•©λ‹ˆλ‹€.

μ‚¬μš©μžμ˜ roles 배열을 μ—…λ°μ΄νŠΈν•˜λ €λ©΄ λͺ¨λ“  λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ revokeRole 쑰치λ₯Ό ν¬ν•¨ν•˜λŠ” μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ‚¬μš©μžμ— 역할을 μΆ”κ°€ν•˜λ €λ©΄ μ—­ν• μ˜ λ°μ΄ν„°λ² μ΄μŠ€μ— grantRole μ‘°μΉ˜κ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ μ‚¬μš©μžμ˜ pwd λ˜λŠ” customData ν•„λ“œλ₯Ό λ³€κ²½ν•˜λ €λ©΄ ν•΄λ‹Ή μ‚¬μš©μžμ˜ λ°μ΄ν„°λ² μ΄μŠ€μ— changePassword 및 changeCustomData μ‘°μΉ˜κ°€ 각각 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

μžμ‹ μ˜ λΉ„λ°€λ²ˆν˜Έμ™€ μ‚¬μš©μž μ§€μ • 데이터λ₯Ό μˆ˜μ •ν•˜λ €λ©΄ μ‚¬μš©μž λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 각각 changeOwnPassword 및 changeOwnCustomData 쑰치λ₯Ό λΆ€μ—¬ν•  수 μžˆλŠ” κΆŒν•œμ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μŒ μ‚¬μš©μž 정보가 ν¬ν•¨λœ products λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‚¬μš©μž appClient01이(κ°€) μ œκ³΅λ©λ‹ˆλ‹€.

{
_id : "products.appClient01",
userId : UUID("c5d88855-3f1e-46cb-9c8b-269bef957986"),
user : "appClient01",
db : "products",
customData : { empID : "12345", badge : "9156" },
roles : [
{
role : "readWrite",
db : "products"
},
{
role : "read",
db : "inventory"
}
],
mechanisms : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
],
authenticationRestrictions : [ {
clientSource: ["69.89.31.226"],
serverAddress: ["172.16.254.1"]
} ]
}

λ‹€μŒ db.updateUser() λ©”μ„œλ“œλŠ” μ‚¬μš©μžμ˜ customData 및 roles 데이터λ₯Ό μ™„μ „νžˆ λŒ€μ²΄ν•©λ‹ˆλ‹€.

use products
db.updateUser( "appClient01",
{
customData : { employeeId : "0x3039" },
roles : [
{ role : "read", db : "assets" }
]
} )

products λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‚¬μš©μž appClient01λŠ” 이제 λ‹€μŒκ³Ό 같은 μ‚¬μš©μž 정보λ₯Ό κ°–μŠ΅λ‹ˆλ‹€.

{
_id : "products.appClient01",
userId : UUID("c5d88855-3f1e-46cb-9c8b-269bef957986"),
user : "appClient01",
db : "products",
customData : { employeeId : "0x3039" },
roles : [
{
role : "read",
db : "assets"
}
],
mechanisms : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
],
authenticationRestrictions : [ {
clientSource: ["69.89.31.226"],
serverAddress: ["172.16.254.1"]
} ]
}

μ°Έκ³ 

SCRAM-SHA-256 을 μ‚¬μš©ν•˜λ €λ©΄ featureCompatibilityVersion 을 4.0 둜 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. For more information on featureCompatibilityVersion, see View FeatureCompatibilityVersion and setFeatureCompatibilityVersion.

λ‹€μŒ μž‘μ—…μ€ ν˜„μž¬ SCRAM-SHA-256 및 SCRAM-SHA-1 자격 증λͺ…을 λͺ¨λ‘ κ°–κ³  μžˆλŠ” μ‚¬μš©μžκ°€ SCRAM-SHA-256 자격 증λͺ…λ§Œ 갖도둝 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

μ°Έκ³ 

  • λΉ„λ°€λ²ˆν˜Έκ°€ mechanismsκ³Ό ν•¨κ»˜ μ§€μ •λ˜μ§€ μ•Šμ€ 경우 mechanismsλ₯Ό μ‚¬μš©μžμ˜ ν˜„μž¬ SCRAM λ©”μ»€λ‹ˆμ¦˜μ˜ ν•˜μœ„ μ§‘ν•©μœΌλ‘œλ§Œ μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • λΉ„λ°€λ²ˆν˜Έκ°€ mechanismsκ³Ό ν•¨κ»˜ μ§€μ •λœ 경우 μ§€μ›λ˜λŠ” SCRAM λ©”μ»€λ‹ˆμ¦˜(1개 λ˜λŠ” μ—¬λŸ¬ 개)을 μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • SCRAM-SHA-256의 경우 passwordDigestorλŠ” κΈ°λ³Έκ°’ "server"이어야 ν•©λ‹ˆλ‹€.

use reporting
db.updateUser(
"reportUser256",
{
mechanisms: [ "SCRAM-SHA-256" ]
}
)

λŒμ•„κ°€κΈ°

db.revokeRolesFromUser

이 νŽ˜μ΄μ§€μ˜ λ‚΄μš©