Mongodb rights management
You have to work overtime tonight, just sort out the permission context configuration of mongodb. After installing and configuring a set of mongodb, you need to create a corresponding database and user password for the developer, so how to set the permission?
1. The first step is to create a database
Use chunqiu
two。 To create a user to grant permissions, first learn about the role function in mongodb before creating a user, so what role are there in the admin database?
View role:
Use admin
PRIMARY > show roles
{
"role": "_ _ system"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "backup"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "clusterAdmin"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "clusterManager"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "clusterMonitor"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "dbAdmin"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "dbAdminAnyDatabase"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "dbOwner"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "enableSharding"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "hostManager"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "read"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "readAnyDatabase"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "readWrite"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "readWriteAnyDatabase"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "restore"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "root"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "userAdmin"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "userAdminAnyDatabase"
"db": "admin"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
So what is the role in chunqiu's library?
Use chunqiu
PRIMARY > show roles
{
"role": "dbAdmin"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "dbOwner"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "enableSharding"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "read"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "readWrite"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
{
"role": "userAdmin"
"db": "chunqiu"
"isBuiltin": true
"roles": []
"inheritedRoles": []
}
3. Do you feel enlightened after watching mongodb's role? So create a user now:
Use chunqiu
Db.createUser (
{
User: "app_user"
Pwd: "app#password"
Roles:
[
{
Role: "dbOwner", # # Select dbOwner for the role of database permissions
Db: "chunqiu" # # Note here data validation uses the chunqiu library
}
]
}
)
To set up a read-only account:
Use chunqiu
Db.createUser (
{
User: "app_user_read"
Pwd: "read#password"
Roles:
[
{
Role: "read", # # Select read for the role of database permissions
Db: "chunqiu"
}
]
}
)
View the users that have been created:
Show users
Change the password:
Db.changeUserPassword ('app_user','password')
To grant a role:
Db.grantRolesToUser ("admin", [{role: "dbAdminAnyDatabase", db: "admin"}])
Cancel the role:
Db.revokeRolesFromUser ("admin", [{role: "dbAdminAnyDatabase", db: "admin"}])
4. Finally, you can send the created account and password to the developer to use.