Create User
- Connect mongodb by typing mongo
- Switch to admin database by typing use admin
- Create user and password with the appropriate role. Like following:
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
- Then disconnect from the MongoDb shell by typing Ctl+D
Enable authentication
- Open /etc/mongod.conf with your favorite editor like vim. Eg. sudo vim /etc/mongod.conf
- Now enable the authorization. You may find the following:
security:
authorization: "disabled"
And change it to
security:
authorization: "enabled"
- Save and restart the MongoDB using sudo service mongodb restart
- Now you can connect to MongoDB using the following:
If you are using mongosh
client then replace mongo
with mongosh
.
mongo mongodb://localhost:27017 -u codersathi -p
Note: You may create other users for a specific database with a specific role
Example:
use test
db.createUser(
{
user: "testuser",
pwd: "testpassword",
roles: [ { role: "readWrite", db: "test" } ]
}
)
This means, creating a testuser
with testpassword
and readWrite
role for test
database.
List all users from the database
- Go to the database by typing: use db_name
- Query like:
db.getUsers()
Change the user password
db.changeUserPassword("username_to_change_pwd", passwordPrompt())
Login with username and password
Command:
mongo database_name -u username -p
Enable Remote Access MongoDB
- To enable remote access to mongodb we need to send the 0.0.0.0 value for bindIp in config /etc/mongod.conf
Change User Role in MongoDB
db.updateUser( "peg",
{
roles: [{role: "dbOwner", db : "peg"} ]
})
Login from a remote machine
mongo myhost.com -u username -p --authenticationDatabase authenticationDAtabaseName
List collections
show collections
Create collections
db.createCollection(‘collectionname’)
Rename collections
db.oldCollectionName.renameCollection(‘newCollectionName’)
Insert data in the collection
db.collectionName.insert({‘id’:1, ‘name’:’Virat’}) // Or we can pass any json object db.collectionName.insert(jsonObject)
Drop/Delete database
use dbname // Now delete the database using following query db.dropDatabase()
Warning!
Please use this command wisely. Once the database is deleted you can’t revert it back.