gpt4 book ai didi

mongodb - 如何创建将管理其数据库用户的数据库管理员

转载 作者:行者123 更新时间:2023-12-05 08:21:01 26 4
gpt4 key购买 nike

我正在使用 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 身份登录 books db 时尝试查询 db 用户时,出现以下错误:

> 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”权限,即使管理员只需要管理单个数据库。

最佳答案

不确定这个问题的回答是否足够直截了当,但这是你如何做到的:

db.createUser({user: "USERNAME", pwd: "PASSWORD", roles: [{role: "dbOwner", db: "DATABASE"}]});

USERNAME、PASSWORD 和 DATABASE 将填写您的字段。

http://docs.mongodb.org/manual/reference/method/db.createUser/

关于mongodb - 如何创建将管理其数据库用户的数据库管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24696729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com