查看MongoDB官方文档: 添加用户使用的是db.createUser()
官方文档的原文如下:
db.createUser(user, writeConcern)
Creates a new user for the database where the method runs. db.createUser() returns a duplicate user error if the user already exists on the database.
如上看出createUser需要两个参数: user 与 writeConcern。
user的示例:
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
user只需要四个字段:用户名,密码,用户说明,角色等等。其中customData是可选的。而至于roles可以写一个空是数组。
例如:
db.createUser(
{ user:"root", pwd:"toor", roles:[ ]}
)
我们添加的是一个超级管理员:
use admin
db.createUser(
{ user: "root", pwd: "toor", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
查看用户:
show users
或
db.system.users.find()
此时执行一个查询操作会报错
Error: error: { "$err" : "not authorized for query on helloworld.persons", "code" : 13 }
这个因为我们给root用户赋予的是userAdminAnyDatabase角色。该角色没有读写权限,只有用户管理的权限。
use helloworld
db.createUser(
{ user: "wang", pwd: "123456", roles: [ { role: "readWrite", db: "helloworld" },
{ role: "read", db: "test" }
]
}
)
这样创建的用户在helloworld中是可读写的角色,在test中是只读角色。
可以参考这篇MongoDB官方文档的翻译版本:
http://www.cnblogs.com/SamOk/p/5162767.html
参考:
https://docs.mongodb.org