рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЗрд╕ рдбрд┐рдЬрд┐рдЯрд▓ рдпреБрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдСрдирд▓рд╛рдЗрди рдЖ рд░рд╣реЗ рд╣реИрдВ, рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╡ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреА рдкрд╣реБрдБрдЪ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рд░реЛрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдмрдврд╝ рдЧрдИ рд╣реИред рд░реЛрд▓-рдЖрдзрд╛рд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
MongoDB рдХреЗ RBAC рдореЙрдбрд▓ рдореЗрдВ, рдХреНрд░рд┐рдпрд╛рдПрдБ рд░реЛрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрдд рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╣реА рд░реЛрд▓ (рдЬреИрд╕реЗ, dbAdmin) рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рддрдГ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрд▓реЗрдХреНрд╢рдВрд╕ рдкрд░ read)ред рдпрд╣ рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣реБрдБрдЪ рдХреЛ рд╕реНрдХреЗрд▓реЗрдмрд▓ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
MongoDB рдореЗрдВ RBAC рд╕рдХреНрд╖рдо рдХрд░рдирд╛
рдХреЛрд░ RBAC рдореЙрдбрд▓ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣реБрдБрдЪ рдЕрд╕реНрд╡реАрдХреГрдд рд░рд╣рддреА рд╣реИ, рдпрд╛рдиреА рдХрд┐рд╕реА рд░реЛрд▓ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд▓ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░реЛрд▓ рдореЗрдВ рдХреБрдЫ рдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдпрд╛ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
RBAC рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд
рдпрд╣рд╛рдБ RBAC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рджреА рдЧрдИ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
RBAC рдореЙрдбрд▓ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╣ рдЗрдХрд╛рдИ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдЙрд╕рдХреА рдкрд╣реБрдБрдЪ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд░реЛрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рдкрд╛рдПрдЧрд╛ред рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░реЛрд▓ рдЕрд╕рд╛рдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реЛрд▓реНрд╕
MongoDB рд╕реНрд╡-рдкреНрд░рдмрдВрдзрд┐рдд рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯреНрд╕ рдФрд░ MongoDB Atlas рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рд╣реИрдВ read, readWrite, рдФрд░ dbAdmin/atlasAdminред рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдбрдорд┐рди рд░реЛрд▓реНрд╕ рдХреЛ рдЕрдиреНрдп рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реЛрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЕрдиреНрдп рд░реЛрд▓реНрд╕ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдпрджрд┐ рдпреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдЗрдЪреНрдЫрд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ, рддреЛ MongoDB рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
рдПрдХ рд░реЛрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, тАЬreadтАЭ рд░реЛрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, тАЬadminтАЭ рд░реЛрд▓ рдореЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ тАЬownerтАЭ рд░реЛрд▓ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЖрдЗрдЯрдо (рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрджрд┐) рдкрд░ рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ рдФрд░ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рд░реЛрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдпрд╛ рддреЛ рд░реЛрд▓ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реЛрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╛ рджреЛрдиреЛрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ / рдХрд╕реНрдЯрдо рд░реЛрд▓реНрд╕
MongoDB рдХрдИ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢рд╛рд╕рдХ MongoDB рд╕рд┐рд╕реНрдЯрдо рдХреА рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдореМрдЬреВрджрд╛ рд░реЛрд▓реНрд╕ рдЖрдкрдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░ рдкрд╛рддреЗ, рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирдП рд░реЛрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдпрд╣реА рдХрд╕реНрдЯрдо рд░реЛрд▓ рд╣реИред admin рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд░реЛрд▓реНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЛрдИ рд░реЛрд▓ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдиреНрдп рд░реЛрд▓реНрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рдирдпрд╛ рд░реЛрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, db.createRole() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, privileges рдПрд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдФрд░ roles рдПрд░реЗ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рддрд┐рдд рд░реЛрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
MongoDB рдХрд┐рд╕реА рд░реЛрд▓ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо рдФрд░ рд░реЛрд▓ рдирд╛рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рд░реЛрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ admin рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА admin.system.roles рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╕реНрдЯрдо рд░реЛрд▓ (sales_attendant) рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ sales_db рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА sales рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдореНрдорд┐рд▓рд┐рдд (insert) рдХрд░ рд╕рдХрддрд╛ рд╣реИред
use sales
db.createRole(
{
role: "sales_attendant",
privileges: [
{
resource: { db: "sales_db", collection: "sales" },
actions: [ "insert" ]
}
],
roles: []
}
)рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕┬а
рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рд░реЛрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдкрд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХреЗрдВред рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ read, write, readWrite, dbAdmin, рдФрд░ readAnyDatabaseред
- read рдФрд░ readWrite (рдбреЗрдЯрд╛рдмреЗрд╕-рд╕реНрддрд░реАрдп рдкрд╣реБрдБрдЪ): рдпреЗ рд░реЛрд▓реНрд╕ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рд╕рднреА non-system рдХрд▓реЗрдХреНрд╢рдВрд╕ рдкрд░ рдХреНрд░рдорд╢рдГ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдпрд╛ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
- dbAdmin: рдпрд╣ рд░реЛрд▓ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рдмрдВрдзрди рд╣реЗрддреБ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдмрдирд╛рдирд╛, рд╣рдЯрд╛рдирд╛ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ред рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдЯреАрдореЛрдВ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВрдЯреЗрдиреЗрдВрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
- clusterAdmin (рд╕рдВрдЪрд╛рд▓рдирд╛рддреНрдордХ рдкрд╣реБрдБрдЪ): рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ-рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд░реЛрд▓ рд╣реИ, рдЬреЛ рдкреНрд░рд╛рдпрдГ рд╕рдВрдЪрд╛рд▓рди (DevOps/Ops) рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реЗ MongoDB рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдЖрд╡рдзрд┐рдХ рдмреИрдХрдЕрдк рдмрдирд╛рдирд╛, рд░реЗрдкреНрд▓рд┐рдХрд╛ рд╕реЗрдЯреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рд╢рд╛рд░реНрдбрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ (permissions)
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, find, insert) рдЬреЛ рдХрд┐рд╕реА рдХреНрд╖рдорддрд╛ рдкрд░ рдЕрдиреБрдордд рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреНрд╖рдорддрд╛ рд╣реИ тАЬрдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЙрдирдХреЗ рдореМрдЬреВрджрд╛ рдмреИрд▓реЗрдВрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛,тАЭ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ (рдорд╛рди рд▓реАрдЬрд┐рдП рдмреИрдВрдХ рдЯреЗрд▓рд░) рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреНрд╖рдорддрд╛ рдмреИрдВрдХ рдЦрд╛рддреЗ рдХреА рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рдирд▓ рд╕реАрдорд╛ рдмрдврд╝рд╛рдирд╛ рд╣реИ, рддреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд░рд╛рд╕рддрд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░
рдХреЛрдИ рд░реЛрд▓ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдореМрдЬреВрджрд╛ рд░реЛрд▓реНрд╕ (рдЙрдирдХреЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рд╕рд╣рд┐рдд) рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, dbAdmin рд░реЛрд▓ рдореЗрдВ read, write рдФрд░ update рд░реЛрд▓реНрд╕ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реЛрд▓реНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред
рд╕рдВрд╕рд╛рдзрди
рд╕рдВрд╕рд╛рдзрди рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдХрд▓реЗрдХреНрд╢рди, рдХрд▓реЗрдХреНрд╢рдВрд╕ рдХрд╛ рд╕рдореВрд╣, рдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред┬а
рд▓реАрд╕реНрдЯ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ, рд▓реАрд╕реНрдЯ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ (PoLP) рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдиреНрдпреВрдирддрдо рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ readWrite рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрдЬрд╛рдп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ inventory рд╕рд░реНрд╡рд┐рд╕ рд╕рд┐рд░реНрдл app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ readWrite рдПрдХреНрд╕реЗрд╕ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдХрд┐рд╕реА рд╕рдордЭреМрддрд╛-рдЧреНрд░рд╕реНрдд рд╕рд░реНрд╡рд┐рд╕ рдХреЛ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ (рдЬреИрд╕реЗ billing рдпрд╛ users) рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдБрдЪ рдкрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:┬а
рд▓реАрд╕реНрдЯ-рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (branch_manager) рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреА рдкрд╣реБрдБрдЪ рд╕рдЦреНрддреА рд╕реЗ bank_data рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реИред
use admin
db.createUser(
{
user: "branch_manager",
pwd: passwordPrompt(),
roles: [
{ role: "readWrite", db: "bank_data" }
]
}
)рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕
- рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ рдФрд░ рдиреАрддрд┐рдпрд╛рдБ рдмрдирд╛рдПрдБ рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
- рдХрдбрд╝реА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реАрд╕реНрдЯ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
- рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рд░реЛрд▓реНрд╕ рдХрд╛ рд╕рдордп-рд╕рдордп рдкрд░ рдСрдбрд┐рдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдБ рдкрдХрдбрд╝реА рдЬрд╛ рд╕рдХреЗрдВред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЗрд╕ рдбрд┐рдЬрд┐рдЯрд▓ рдпреБрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдСрдирд▓рд╛рдЗрди рдЖ рд░рд╣реЗ рд╣реИрдВ, рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╡ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреА рдкрд╣реБрдБрдЪ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рд░реЛрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдмрдврд╝ рдЧрдИ рд╣реИред рд░реЛрд▓-рдЖрдзрд╛рд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдореЙрдбрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
MongoDB рдХреЗ RBAC рдореЙрдбрд▓ рдореЗрдВ, рдХреНрд░рд┐рдпрд╛рдПрдБ рд░реЛрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрдд рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╣реА рд░реЛрд▓ (рдЬреИрд╕реЗ, dbAdmin) рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рддрдГ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрд▓реЗрдХреНрд╢рдВрд╕ рдкрд░ read)ред рдпрд╣ рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣реБрдБрдЪ рдХреЛ рд╕реНрдХреЗрд▓реЗрдмрд▓ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
MongoDB рдореЗрдВ RBAC рд╕рдХреНрд╖рдо рдХрд░рдирд╛
рдХреЛрд░ RBAC рдореЙрдбрд▓ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣реБрдБрдЪ рдЕрд╕реНрд╡реАрдХреГрдд рд░рд╣рддреА рд╣реИ, рдпрд╛рдиреА рдХрд┐рд╕реА рд░реЛрд▓ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд▓ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░реЛрд▓ рдореЗрдВ рдХреБрдЫ рдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдпрд╛ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
RBAC рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд
рдпрд╣рд╛рдБ RBAC рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рджреА рдЧрдИ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
RBAC рдореЙрдбрд▓ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╣ рдЗрдХрд╛рдИ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░реЛрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдЙрд╕рдХреА рдкрд╣реБрдБрдЪ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рд░реЛрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рдкрд╛рдПрдЧрд╛ред рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░реЛрд▓ рдЕрд╕рд╛рдЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реЛрд▓реНрд╕
MongoDB рд╕реНрд╡-рдкреНрд░рдмрдВрдзрд┐рдд рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯреНрд╕ рдФрд░ MongoDB Atlas рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рд╣реИрдВ read, readWrite, рдФрд░ dbAdmin/atlasAdminред рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдбрдорд┐рди рд░реЛрд▓реНрд╕ рдХреЛ рдЕрдиреНрдп рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реЛрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЕрдиреНрдп рд░реЛрд▓реНрд╕ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдпрджрд┐ рдпреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдЗрдЪреНрдЫрд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ, рддреЛ MongoDB рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
рдПрдХ рд░реЛрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, тАЬreadтАЭ рд░реЛрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, тАЬadminтАЭ рд░реЛрд▓ рдореЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ тАЬownerтАЭ рд░реЛрд▓ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЖрдЗрдЯрдо (рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрджрд┐) рдкрд░ рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ рдФрд░ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рд░реЛрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдпрд╛ рддреЛ рд░реЛрд▓ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд░реЛрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╛ рджреЛрдиреЛрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓реНрд╕ / рдХрд╕реНрдЯрдо рд░реЛрд▓реНрд╕
MongoDB рдХрдИ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢рд╛рд╕рдХ MongoDB рд╕рд┐рд╕реНрдЯрдо рдХреА рдкрд╣реБрдБрдЪ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдореМрдЬреВрджрд╛ рд░реЛрд▓реНрд╕ рдЖрдкрдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░ рдкрд╛рддреЗ, рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирдП рд░реЛрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдпрд╣реА рдХрд╕реНрдЯрдо рд░реЛрд▓ рд╣реИред admin рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд░реЛрд▓реНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЛрдИ рд░реЛрд▓ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдиреНрдп рд░реЛрд▓реНрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рдирдпрд╛ рд░реЛрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
db.createRole()рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, privileges рдПрд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдФрд░ roles рдПрд░реЗ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рддрд┐рдд рд░реЛрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВредMongoDB рдХрд┐рд╕реА рд░реЛрд▓ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╛рдо рдФрд░ рд░реЛрд▓ рдирд╛рдо рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рд░реЛрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ admin рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА
admin.system.rolesрдХрд▓реЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИредрдЙрджрд╛рд╣рд░рдг: рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╕реНрдЯрдо рд░реЛрд▓ (sales_attendant) рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ sales_db рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА sales рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдореНрдорд┐рд▓рд┐рдд (insert) рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕┬а
рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рд░реЛрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдкрд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░ рд╕рдХреЗрдВред рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЛрд▓реНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ read, write, readWrite, dbAdmin, рдФрд░ readAnyDatabaseред
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ (permissions)
рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, find, insert) рдЬреЛ рдХрд┐рд╕реА рдХреНрд╖рдорддрд╛ рдкрд░ рдЕрдиреБрдордд рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреНрд╖рдорддрд╛ рд╣реИ тАЬрдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЙрдирдХреЗ рдореМрдЬреВрджрд╛ рдмреИрд▓реЗрдВрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛,тАЭ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ (рдорд╛рди рд▓реАрдЬрд┐рдП рдмреИрдВрдХ рдЯреЗрд▓рд░) рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреНрд╖рдорддрд╛ рдмреИрдВрдХ рдЦрд╛рддреЗ рдХреА рдЯреНрд░рд╛рдВрдЬрд╝реИрдХреНрд╢рдирд▓ рд╕реАрдорд╛ рдмрдврд╝рд╛рдирд╛ рд╣реИ, рддреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд░рд╛рд╕рддрд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░
рдХреЛрдИ рд░реЛрд▓ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдореМрдЬреВрджрд╛ рд░реЛрд▓реНрд╕ (рдЙрдирдХреЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рд╕рд╣рд┐рдд) рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
dbAdminрд░реЛрд▓ рдореЗрдВ read, write рдФрд░ update рд░реЛрд▓реНрд╕ (рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реЛрд▓реНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВредрд╕рдВрд╕рд╛рдзрди
рд╕рдВрд╕рд╛рдзрди рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдХрд▓реЗрдХреНрд╢рди, рдХрд▓реЗрдХреНрд╢рдВрд╕ рдХрд╛ рд╕рдореВрд╣, рдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред┬а
рд▓реАрд╕реНрдЯ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд╛рдЧреВ рдХрд░рдирд╛
рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ, рд▓реАрд╕реНрдЯ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ (PoLP) рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрддрдиреА рд╣реА рдиреНрдпреВрдирддрдо рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рддрдиреА рдЙрд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ readWrite рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрдЬрд╛рдп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ inventory рд╕рд░реНрд╡рд┐рд╕ рд╕рд┐рд░реНрдл app_data рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ readWrite рдПрдХреНрд╕реЗрд╕ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдХрд┐рд╕реА рд╕рдордЭреМрддрд╛-рдЧреНрд░рд╕реНрдд рд╕рд░реНрд╡рд┐рд╕ рдХреЛ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ (рдЬреИрд╕реЗ billing рдпрд╛ users) рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдБрдЪ рдкрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:┬а
рд▓реАрд╕реНрдЯ-рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (branch_manager) рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреА рдкрд╣реБрдБрдЪ рд╕рдЦреНрддреА рд╕реЗ bank_data рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдорд┐рдд рд╣реИред
рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕