登录 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"})