Mongodb 安全认证

mongodb version: 4.0

首先得连接上未开启安全认证的mongo服务端,创建一个用于登录的管理员并配置角色

> use admin
> db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

用户创建是在admin数据库,这里有两个角色:

userAdminAnyDatabase: 表示这是一个管理员账号,拥有创建其他database用户的权限
readWriteAnyDatabase: 表明这个账号可以拥有读写其他database的权限

然后修改 mongodb 的配置文件 /etc/mongod.conf

 security:
   authorization: 'enabled'

重启mongodb服务端。然后连接mongodb服务端,这里以python的pymongo为例

from pymongo import MongoClient
import urllib.parse
# 以字符串拼接方式连接需要使用 urllib.parse.quote_plus 对用户名和密码进行处理
username = urllib.parse.quote_plus('username')
password = urllib.parse.quote_plus('password')
# authSource 按照前面的配置需要使用admin这个database,如果你针对每个database都有
# 管理员的话这里就填具体的database即可,authMechanism 在4.0时候默认为SCRAM-SHA-1方式
uri = "mongodb://{user}:{pwd}@{host}:{port}/?authSource=admin&authMechanism=SCRAM-SHA-1".format(user=username, pwd=password, host=host, port=port)
client = MongoClient(uri)
# 设置想要操作的db即可
db = client['test']

你可能感兴趣的:(Mongodb 安全认证)