Secure MongoDB Self-Managed: AuthN and AuthZ / Manage Database Users and Custom Roles
Code Summary: Database User Authorization
The code below creates a custom database role and creates a new user assigned to that role.
Create a custom database role:
Here, we create a custom database role named salesAnalytics
. The role allows a user to read documents in the sales
and returns
collections.
use catalog
db.createRole(
{
role: "salesAnalytics",
privileges: [
{ resource: { db: "catalog", collection: "sales" }, actions: [ "find" ] },
{ resource: { db: "catalog", collection: "returns" }, actions: [ "find" ] }
],
roles: []
}
)
Create a database user and assign a role:
Here, we create a database user and assign it to the salesAnalytics
role.
use admin
db.createUser(
{
user: "salesAnalyticsUser",
pwd: passwordPrompt(),
roles: [ { role: "salesAnalytics", db: "catalog" } ]
}
)