μ μ
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 μμ
μ μνν μ μλλ‘ νμ©ν©λλ€.