响应式网站管理系统,桐梓县工程建设交易网站,衡阳退休职工做面膜网站,大连开发区社保网站MongoDB 启用认证的完整指南
启用 MongoDB 的认证功能需要按照以下步骤进行设置#xff1a;
检查 MongoDB 配置文件
在 MongoDB 配置文件中#xff08;通常为 mongod.conf#xff09;#xff0c;需要启用认证功能。
修改配置文件
打开 mongod.conf 文件#xff0c;找…MongoDB 启用认证的完整指南
启用 MongoDB 的认证功能需要按照以下步骤进行设置
检查 MongoDB 配置文件
在 MongoDB 配置文件中通常为 mongod.conf需要启用认证功能。
修改配置文件
打开 mongod.conf 文件找到或添加以下内容
systemLog:destination: filepath: /your_path/mongo.loglogAppend: true
storage:dbPath: /your_path/mongodb
net:bindIp: *********, ::1ipv6: true
security:authorization: enabled如果是 Homebrew 安装的 MongoDB配置文件路径通常为 /opt/homebrew/etc/mongod.conf。如果是手动安装的 MongoDB请确保路径正确或者创建自己的配置文件。
重启 MongoDB 服务
修改完配置文件后重启 MongoDB 服务
mongod --config /your_path/mongod.conf
mongod --config /opt/homebrew/etc/mongod.conf或者
brew services restart mongodb-communityversion启动 MongoDB无认证模式
如果数据库未启用用户认证可以先以无认证模式启动 MongoDB创建管理员用户。
启动命令
mongod --config /your_path/mongod.conf创建管理员用户
进入 MongoDB Shell连接数据库
mongosh mongodb://127.0.0.1:27017切换到 admin 数据库
use admin创建管理员用户
db.createUser({user: admin,pwd: your_password, // 设置强密码roles: [ { role: userAdminAnyDatabase, db: admin },{ role: readWriteAnyDatabase, db: admin },{ role: clusterAdmin, db: admin }]
})userAdminAnyDatabase 允许该用户在所有数据库上管理用户。 readWriteAnyDatabase 跨数据库的读写权限用户可以对 所有非系统数据库 执行 read读取和 write写入操作包括插入、更新、删除和查询文档。不能操作 admin 数据库的配置或管理数据虽然用户可以访问 admin 数据库因为它是默认管理数据库但无法修改数据库的配置或用户管理数据需要更高权限如 userAdminAnyDatabase 或 dbAdminAnyDatabase。 clusterAdmin 允许关闭数据库等管理操作。 建议将密码设置为复杂密码以保证安全性。
验证管理员用户
退出 MongoDB Shell然后以认证模式重启 MongoDB
mongod --config /your_path/mongod.conf使用管理员用户连接 MongoDB
mongosh -u admin -p your_password --authenticationDatabase admin成功登录后验证管理员用户权限
use admin
db.getUsers()创建普通用户
如果需要对特定数据库的访问权限进行限制可以创建普通用户。
切换到目标数据库
use your_database_name创建普通用户
db.createUser({user: user_name,pwd: user_password,roles: [ { role: readWrite, db: your_database_name } ]
})readWrite 角色允许该用户对指定数据库进行读写操作。
启动认证并测试
确保 mongod.conf 中已启用认证即 authorization: enabled。
使用普通用户登录
mongosh -u user_name -p user_password --authenticationDatabase your_database_name测试权限
db.collection_name.find() // 测试读取权限
db.collection_name.insert({ key: value }) // 测试写入权限注意事项
数据备份在启用认证前请确保所有重要数据已备份。权限分配为不同的用户分配最小权限以减少安全风险。密码管理妥善管理用户密码定期更新以防泄露。
优雅的关闭 MongoDB 服务
db.adminCommand({ shutdown: 1 })验证是否已经关闭
// 使用 ps 查看进程
ps aux | grep mongod
// 使用 mongosh 连接
mongosh