createUser(创建用户)
最后更新:2026-10-09
createUser(创建用户)
createUser创建数据库用户并分配角色,mongosh中用db.createUser({ user, pwd, roles })。角色可为内置角色(read、readWrite、dbAdmin、root)或自定义角色,跨库角色用{ role, db }对象限定。用户归属执行命令所在的库。注意:需开启authorization参数认证才生效。
| 分类 | 用户认证 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.createUser({
user: "<用户名>",
pwd: "<密码>",
roles: [ { role: "readWrite", db: "shop" } ]
})
⚙️ 参数
| user | 用户名 |
|---|---|
| pwd | 密码,可用passwordDigestor指定哈希方式 |
| roles | 角色列表,如{ role, db }或字符串 |
返回值:返回{ ok: 1 }表示创建成功
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// createUser:创建只读用户
use admin
db.createUser({
user: 'reader',
pwd: 'secret123',
roles: [ { role: 'read', db: 'shop' } ]
})
运行结果:
{ ok: 1 }
📌 注意事项
- 在哪个库执行createUser,用户就归属哪个库
- 跨库授权用{ role, db }形式
- 密码不以明文存储,但别用弱密码
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QcreateUser在哪个库执行?
A在用户归属库执行(通常admin或业务库),跨库角色用{ role, db }指定。
Q创建了用户但连接不用认证?
AMongoDB需开启authorization参数才检查用户名密码,否则任何人都能连。
Q内置角色有哪些?
Aread、readWrite、dbAdmin、dbOwner、userAdmin、root等。