登录 MongoDB shell 并切换到 admin 库
mongo
use admin
创建管理员用户
db.createUser(
  {
    user: "yourusername",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
修改 /etc/init.d/mongod 并重启 MongoDB
OPTIONS=" -f $CONFIGFILE" 
改为
OPTIONS=" --auth -f $CONFIGFILE"
 
/etc/init.d/mongod restart
登录并进行用户认证
mongo
use admin
db.auth("yourusername", "password")
也可以这样登录
mongo --port 27017 -u yourusername -p password --authenticationDatabase admin
认证成功后,创建普通用户,使用此用户登陆后即可对指定数据库进行操作
db.createUser(
  {
    user: "123",
    pwd: "123123",
    roles: [ 
    { role: "readWrite", db: "firstdb" },     # firstdb 库给予读写权限
    { role: "read", db: "products" },     # products 库给予读权限    
   ]
  }
)
使用 PyMongo 连接使用用户认证的 mongodb
from pymongo import MongoClient
MongoClient('mongodb://user:' + 'password' + '@127.0.0.1')
如果密码中含有 %,,/ 等符号,需要使用 urllib 进行转义
import urllib
from pymongo import MongoClient
password = urllib.quote_plus('pass/word%&/')
MongoClient('mongodb://user:' + password + '@127.0.0.1')
修改指定用户的密码
use admin
db.changeUserPassword("username", "newpassword")
删除指定用户
use admin
db.db.system.users.remove({user:"username"})