Skip to main content

在 MongoDB 5 中创建新用户和数据库

在 MongoDB 5 中创建新数据库和用户的过程如下:

1. 连接到 MongoDB 服务器

首先使用 MongoDB shell 连接到服务器:

mongo

或者如果需要进行认证连接:

mongo -u admin -p --authenticationDatabase admin

2. 创建新数据库

MongoDB 会在你第一次向数据库存储数据时自动创建数据库。要"创建"一个新数据库,只需切换到它:

use myNewDatabase

3. 创建用户

在创建用户之前,确保你已使用有管理员权限的账户登录。

创建管理员用户(可选)

use admin
db.createUser({
user: "adminUser",
pwd: "securePassword", // 替换为强密码
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})

为特定数据库创建用户

use myNewDatabase
db.createUser({
user: "dbUser",
pwd: "userPassword", // 替换为强密码
roles: [
{ role: "readWrite", db: "myNewDatabase" },
{ role: "dbAdmin", db: "myNewDatabase" }
]
})

4. 常用角色说明

  • read: 只读权限
  • readWrite: 读写权限
  • dbAdmin: 数据库管理权限
  • userAdmin: 用户管理权限
  • clusterAdmin: 集群管理权限(仅admin数据库)
  • dbOwner: 数据库所有者(包含readWrite、dbAdmin和userAdmin角色)

5. 验证用户创建

db.getUsers()

6. 启用认证(如果尚未启用)

要使用这些用户,需要在 MongoDB 配置文件中启用认证:

  1. 编辑配置文件(通常位于 /etc/mongod.conf
  2. 添加或修改以下行:
    security:
    authorization: enabled
  3. 重启 MongoDB 服务:
    sudo systemctl restart mongod

7. 使用新用户连接

mongo -u dbUser -p userPassword --authenticationDatabase myNewDatabase

注意事项

  1. MongoDB 5 加强了安全性,建议总是使用强密码
  2. 生产环境中不应使用默认端口和未加密的连接
  3. 考虑设置适当的网络访问控制
  4. 定期轮换密码和审计用户权限

希望这些信息对你有帮助!如需更详细的权限配置,可以参考 MongoDB 5 的官方文档。