3

您能帮我如何使用带有身份验证的 mongo 访问数据库吗?

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

我正在使用 Ubuntu。我做错了什么吗?如何通过身份验证访问我的数据库?

4

2 回答 2

1

您可以通过首先更改到该数据库use dbname然后为该特定数据库添加用户来将用户添加到特定数据库db.addUser('username','password')。完成此操作后,您可以使用 连接到该数据库mongo dbname -u username -p,或者通过连接到 mongo 然后更改到该数据库然后执行db.auth('username','password').

admin 数据库是一种特殊情况,因为授予此数据库中的用户的权限适用于任何数据库。MongoDB 文档中的一个示例是:

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

于 2013-06-12T12:41:25.967 回答
0

我假设您实际上是在问两个问题:(1)如何设置 MongoDB 身份验证和(2)如何使用它。

虽然是几年后,我还是忍不住链接官方教程。这里是管理摘要:

  1. admin无需身份验证即可启动 MongoDB,连接到 Mongo shell 并在数据库中创建用户管理员。
  2. 断开与 Mongo shell 的连接并在配置文件中启用身份验证。如果您找不到mongod.conf您使用的是已弃用的 MongoDB 版本,则应在继续之前认真考虑更新。
  3. 有时需要重启 MongoDB 服务。
  4. 连接到 MongoDB 并使用您在步骤 1 中设置的用户名和密码以用户管理员身份进行身份验证。
  5. 创建其他用户。您并不总是希望对所有事情都使用用户管理员。
  6. 就这样。

更多资源:

于 2019-05-23T12:17:26.173 回答