Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
μ—­ν•  관리

db.grantPrivilegesToRole()

db.grantPrivilegesToRole(rolename, privileges, writeConcern)

μ‚¬μš©μž μ •μ˜ μ—­ν•  에 μΆ”κ°€κΆŒν•œ 을 λΆ€μ—¬ν•©λ‹ˆλ‹€.

μ€‘μš”

Mongo쉬 방법

이 νŽ˜μ΄μ§€μ—μ„œλŠ” mongosh λ©”μ„œλ“œμ— λŒ€ν•΄ μ„€λͺ…ν•©λ‹ˆλ‹€. μ΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€ λͺ…λ Ή λ˜λŠ” Node.js와 같은 언어별 λ“œλΌμ΄λ²„μ— λŒ€ν•œ μ„€λͺ…μ„œκ°€ μ•„λ‹™λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ λͺ…령에 λŒ€ν•΄μ„œλŠ” grantPrivilegesToRole λͺ…령을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

MongoDB API λ“œλΌμ΄λ²„μ˜ 경우 언어별 MongoDB λ“œλΌμ΄λ²„ μ„€λͺ…μ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

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

db.grantPrivilegesToRole(
"< rolename >",
[
{ resource: { <resource> }, actions: [ "<action>", ... ] },
...
],
{ < writeConcern > }
)

db.grantPrivilegesToRole() λ©”μ„œλ“œλŠ” λ‹€μŒ 인수λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

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

rolename

λ¬Έμžμ—΄

κΆŒν•œμ„ λΆ€μ—¬ν•  μ—­ν• μ˜ μ΄λ¦„μž…λ‹ˆλ‹€.

privileges

λ°°μ—΄

역할에 μΆ”κ°€ν•  κΆŒν•œμž…λ‹ˆλ‹€. κΆŒν•œ ν˜•μ‹μ€ privilegesλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

writeConcern

λ¬Έμ„œ

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

db.grantPrivilegesToRole() λ©”μ„œλ“œλŠ” ν•˜λ‚˜ μ΄μƒμ˜ κΆŒν•œμ„ λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 각 <privilege> ꡬ문은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

{ resource: { <resource> }, actions: [ "<action>", ... ] }

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

μ€‘μš”

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

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

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

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

admin λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μƒμ„±λœ 역할을 μ œμ™Έν•˜κ³ , 역할은 ν•΄λ‹Ή λ°μ΄ν„°λ² μ΄μŠ€μ— μ μš©λ˜λŠ” κΆŒν•œλ§Œ 포함할 수 μžˆμŠ΅λ‹ˆλ‹€

admin λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μƒμ„±λœ μ—­ν• μ—λŠ” admin λ°μ΄ν„°λ² μ΄μŠ€, λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€ λ˜λŠ” ν΄λŸ¬μŠ€ν„° λ¦¬μ†ŒμŠ€μ— μ μš©λ˜λŠ” κΆŒν•œμ΄ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.

κΆŒν•œμ„ λΆ€μ—¬ν•˜λ €λ©΄ κΆŒν•œμ΄ λŒ€μƒμœΌλ‘œ ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— grantRole μž‘μ—…μ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ—¬λŸ¬ λ°μ΄ν„°λ² μ΄μŠ€ λ˜λŠ” cluster λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ κΆŒν•œμ„ λΆ€μ—¬ν•˜λ €λ©΄ admin λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ grantRole μž‘μ—…μ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€μŒ db.grantPrivilegesToRole() μž‘μ—…μ€ products λ°μ΄ν„°λ² μ΄μŠ€μ— μžˆλŠ” inventoryCntrl01 역할에 κΆŒν•œμ„ 두 개 더 λΆ€μ—¬ν•©λ‹ˆλ‹€. μž‘μ—…μ€ ν•΄λ‹Ή λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

use products
db.grantPrivilegesToRole(
"inventoryCntrl01",
[
{
resource: { db: "products", collection: "" },
actions: [ "insert" ]
},
{
resource: { db: "products", collection: "system.js" },
actions: [ "find" ]
}
],
{ w: "majority" }
)

첫 번째 κΆŒν•œμ€ 이 역할이 μžˆλŠ” μ‚¬μš©μžκ°€ products μ‹œμŠ€ν…œ μ»¬λ ‰μ…˜μ„ μ œμ™Έν•œ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  μ»¬λ ‰μ…˜μ— λŒ€ν•΄ insert μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€. μ‹œμŠ€ν…œ μ»¬λ ‰μ…˜μ— μ ‘κ·Όν•˜λ €λ©΄ 두 번째 κΆŒν•œκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ κΆŒν•œμ΄ λ¦¬μ†ŒμŠ€ λ¬Έμ„œμ˜ μ‹œμŠ€ν…œ μ»¬λ ‰μ…˜μ„ λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

두 번째 κΆŒν•œμ€ 이 역할이 μžˆλŠ” μ‚¬μš©μžκ°€ system.jsλΌλŠ” product λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‹œμŠ€ν…œ μ»¬λ ‰μ…˜μ— λŒ€ν•΄ find μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€.

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

db.getRoles

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