首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mongodb上创建启用身份验证的数据库

在mongodb上创建启用身份验证的数据库
EN

Database Administration用户
提问于 2022-01-26 18:27:47
回答 1查看 82关注 0票数 -1

我可以使用"user1“的特定角色创建一个数据库。我已经测试过了,用户"test1“无法在启用模式授权的情况下创建数据库。如何创建数据库?我创建了一个用户"user1“,它只能访问这个数据库"db1”。是否可以让同一个用户"user1“具有创建Server中存在的新数据库的权限?我可能(完全)错了,但我想要一个关于这个案件的具体解释。谢谢您的帮助和指导。:)

EN

回答 1

Database Administration用户

回答已采纳

发布于 2022-01-26 22:04:57

很难理解你的问题。

也许您的问题是:在MongoDB中,您有不同的数据库。数据库adminconfiglocal是预定义的系统数据库.

用户和角色是在数据库中创建的,我认为这对于MongoDB来说是一种非常独特的行为。您可以在任何数据库中创建用户和角色,但是admin数据库应该是常见的。

admin数据库包括用于管理整个系统的角色,而不仅仅是一个数据库。这些角色主要涉及复制集和分块集群管理功能。

admin以外的其他数据库中创建的角色只能包含应用于其数据库的特权,并且只能继承其数据库中的其他角色。

admin数据库中创建的角色可以包含应用于任何数据库或群集资源的特权,并且可以继承其他数据库中的角色以及admin数据库中的角色。

因此,我假设user1不是在admin数据库中创建的。很可能您创建了test数据库,这是默认的。那么,上述限制就适用了。

admin数据库中创建用户并授予所需角色:

代码语言:javascript
复制
use admin
db.runCommand( {
       createUser: "user1",
       pwd: "secret",
       roles: [ "readWrite" ]
} )

代码语言:javascript
复制
db.getSiblingDB("admin").runCommand(...)

这个用户可以创建任何数据库,并且可以写入任何数据库。

每个数据库都提供内置角色 readreadWritedbOwnerdbAdminuserAdmin

也许你在找这个:

代码语言:javascript
复制
use admin
db.runCommand( {
       createUser: "user1",
       pwd: "secret",
       roles: [ { role: "dbOwner", db: "db1" } ]
} )

此命令创建用户并授予数据库dbOwner of db1。他可以写入数据库db1,不能创建或读取任何其他数据库。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/306624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档