Mongo针对特定数据库的身份验证

3

请问如何使用身份验证来访问MongoDB数据库?

use admin
db.addUser( { user: "root", pwd: "root", roles: ["readWrite"] } )
db.auth('root', 'root')

我正在使用Ubuntu操作系统。 请问我是否有做错什么? 如何进行带有认证的数据库访问?

2个回答

1
您可以通过先切换到该数据库 use dbname,然后为该特定数据库添加用户 db.addUser('username','password') 来将用户添加到特定的数据库。完成后,您可以使用 mongo dbname -u username -p 连接到该数据库,或者连接到 mongo,然后切换到该数据库并执行 db.auth('username','password')
管理员数据库是一个特殊情况,因为在此数据库中授予用户的权限将授予任何数据库。MongoDB 文档中的一个示例如下:

userAdmin 是一个特定于数据库的权限,仅允许用户管理单个数据库上的用户。但是,对于 admin 数据库,userAdmin 允许用户获得 userAdminAnyDatabase 的权限,因此仅对于 admin 数据库,这些角色实际上是相同的。


addUser 已经被弃用,现在应该使用 createUser。 - Anthony

0

我假设你实际上问了两个问题:(1)如何设置MongoDB身份验证以及(2)如何使用它。

虽然这是几年前的事情,但我还是想链接官方教程。以下是管理摘要:

  1. 开始不带身份验证的MongoDB,连接到Mongo shell,并在admin数据库中创建用户管理员。
  2. 断开Mongo shell的连接,并在配置文件中启用身份验证。如果找不到mongod.conf,则表示您正在使用一个已弃用的MongoDB版本,应认真考虑更新。
  3. 有时需要重启MongoDB服务。
  4. 连接到MongoDB并使用第1步中设置的用户名和密码作为用户管理员进行身份验证。
  5. 创建其他用户。您不总是想使用用户管理员来完成所有任务。
  6. 就这些了。

更多资源:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接