【发布时间】:2014-07-11 11:32:31
【问题描述】:
我正在使用 MongoDB ver2.6.2,并希望创建一个能够管理其用户(添加和删除用户)的数据库管理员。我有两个数据库 - 管理员和书籍。用户 admin_books 应该是一个 dbOwner 并且能够在图书数据库中创建和删除用户:
/* creating admin db */
> use admin;
switched to db admin
> db.createUser( { "user" : "admin_root", "pwd": "pass", "roles" : ["root"] } )
Successfully added user: { "user" : "admin_root", "roles" : [ "root" ] }
/* creating books db */
> use books;
switched to db books
> db.createUser( { "user" : "admin_books", "pwd": "pass", "roles" : ["dbOwner"] } )
Successfully added user: { "user" : "admin_books", "roles" : [ "dbOwner" ] }
> db.createUser( { "user" : "logger", "pwd": "pass", "roles" : ["readWrite"] } )
Successfully added user: { "user" : "logger", "roles" : [ "readWrite" ] }
我发现从 2.6 版本开始,所有用户实际上都存储在 admin db 中。 当我以 admin_books 身份登录到图书数据库时尝试查询数据库用户时,我收到以下错误:
> use books
switched to db books
> db.auth("admin_books", "pass")
1
> db.system.users.find()
error: { "$err" : "not authorized for query on books.system.users", "code" : 13 }
我需要将任何角色和权限添加到 admin_books 以允许他管理用户吗? 或者这样做的正确方法是什么?
我知道有一个类似的question,但答案建议向用户添加“userAdminAnyDatabase”权限,即使管理员只需要管理单个数据库。
【问题讨论】:
-
Stackoverflow 是一个面向程序员的社区。但是,您的问题是数据库管理员的问题。我提名这个问题迁移到 dba.stackexchange.com。
标签: mongodb administrator user-management