MongoDB在Ubuntu上的认证方式
导读:MongoDB在Ubuntu上的认证方式及配置流程 一、基础认证配置(SCRAM-SHA-256/SCRAM-SHA-1) SCRAM(Salted Challenge-Response Authentication Mechanism)是...
MongoDB在Ubuntu上的认证方式及配置流程
一、基础认证配置(SCRAM-SHA-256/SCRAM-SHA-1)
SCRAM(Salted Challenge-Response Authentication Mechanism)是MongoDB默认的认证机制,Ubuntu环境下主要支持SCRAM-SHA-256(推荐)和SCRAM-SHA-1。配置步骤如下:
1. 启用认证
编辑MongoDB主配置文件(/etc/mongod.conf
),在security
section添加或修改以下内容,启用认证功能:
security:
authorization: enabled
保存后重启MongoDB服务使配置生效:
sudo systemctl restart mongod
2. 创建管理员用户
使用mongo
shell连接到MongoDB(默认无认证),切换至admin
数据库(系统级权限数据库),创建具备root
角色(最高权限)的管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_secure_password", // 替换为强密码
roles: ["root"]
}
)
exit
3. 使用管理员认证连接
后续连接MongoDB需通过管理员账户验证,示例如下:
# 命令行连接(本地)
mongo -u admin -p your_secure_password --authenticationDatabase admin
# 图形化工具(如MongoDB Compass)连接字符串示例
mongodb://admin:your_secure_password@localhost:27017/admin
4. 创建数据库特定用户
为特定数据库(如mydb
)创建普通用户,分配所需权限(如readWrite
读写权限、dbOwner
数据库所有者权限):
use mydb
db.createUser({
user: "myuser",
pwd: "user_password",
roles: ["readWrite", "dbOwner"]
}
)
exit
二、高级认证方式(可选)
除基础SCRAM认证外,Ubuntu环境还可配置以下高级认证机制,提升安全性:
1. x.509证书认证
通过SSL/TLS证书实现客户端与服务端的双向认证,适用于高安全需求场景。配置步骤包括:
- 生成CA证书、服务器证书和客户端证书(可使用
openssl
工具); - 在
/etc/mongod.conf
中配置SSL参数:net: ssl: mode: requireSSL PEMKeyFile: /path/to/server.pem # 服务器证书 CAFile: /path/to/ca.pem # CA证书 security: clusterAuthMode: x509 # 集群内部认证模式
- 创建用户时指定证书DN(Distinguished Name):
use admin db.createUser({ user: "certuser", roles: ["readWrite"], authenticationRestrictions: [{ clientSource: ["192.168.1.0/24"], // 允许的客户端IP段 serverAddress: ["mongoserver.local"] // 服务器主机名 } ] } )
2. LDAP认证
集成企业级LDAP(如OpenLDAP、Active Directory)实现集中用户管理,配置步骤包括:
- 在
/etc/mongod.conf
中配置LDAP参数:security: ldap: servers: ldap://ldap.example.com bind: method: simple queryUser: "cn=admin,dc=example,dc=com" queryPassword: "ldap_admin_password" userToDNMapping: '[{ "match": "(.+)", "substitution": "cn=$1,ou=users,dc=example,dc=com"} ]' authz: queryTemplate: "dc=example,dc=com??sub?(memberOf=cn=mongodb-users,ou=groups,dc=example,dc=com)"
- 用户连接时无需在MongoDB中创建本地账户,直接使用LDAP凭证认证:
mongo -u ldapuser -p ldap_password --authenticationMechanism PLAIN --authenticationDatabase "$external"
三、认证相关注意事项
- 密码策略:建议使用强密码(包含大小写字母、数字、特殊字符),定期更换密码;可通过
db.updateUser()
修改现有用户密码。 - 权限最小化:遵循“最小权限原则”分配用户角色,避免授予过高权限(如不为应用用户分配
root
角色)。 - 网络隔离:通过
net.bindIp
限制MongoDB监听IP(如仅绑定127.0.0.1
和内网IP),减少暴露风险。 - 审计日志:开启审计功能记录用户操作(如查询、修改、删除),便于安全追溯:
security: auditLog: destination: file format: JSON path: /var/log/mongodb/audit.json
以上配置覆盖了Ubuntu环境下MongoDB的主要认证方式,可根据实际需求选择基础或高级方案,确保数据库访问安全。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB在Ubuntu上的认证方式
本文地址: https://pptw.com/jishu/726245.html