当前位置: 首页 > 知识库问答 >
问题:

启用authencation后无法访问数据库

崔绍辉
2023-03-14
db.createUser({
    user: "root",
    pwd: "xxx",
    roles:
    [{
        role: "userAdminAnyDatabase",
        db: "admin"
        }]
})
systemLog:
  destination: "file"
  path: "c:\\mongodb\\log\\mongo.log"
  quiet: true
  logAppend: true
storage:
  dbPath: "c:\\mongodb\\data\\db"
  directoryPerDB: true
  smallFiles: true
  journal:
    enabled: true
net:
  bindIp: 127.0.0.1
  port: 27017
  http:
    enabled: true
    JSONPEnabled: true
    RESTInterfaceEnabled: true
security:
  authorization: enabled

我使用mongo-u root-p--authenticationdatabase admin启动了mongo,但是我得到了如下所示的错误消息。

MongoDB shell version: 2.6.1
Enter password:
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }

我试图使用Show Collections,但得到如下所示的错误消息。

2014-05-20T00:36:07.801+0700 error: {
        "$err" : "not authorized for query on admin.system.namespaces",
        "code" : 13
} at src/mongo/shell/query.js:131

但是当我尝试db.system.users.find()时,我可以在集合中显示用户,而不会出现任何错误消息。

共有1个答案

司徒博容
2023-03-14

在我的例子中,username:root是用adminanydatabase创建的,它实际上没有诸如find action之类的特权。

因此,正如我所期望的那样,根应该是顶级用户,所以应该使用根角色将根授予超级用户。

use admin

db.grantRolesToUser(
    "root",
    [
        { role: "root", db: "admin" }
    ]
)

此外,AdminanyDatabase应该被撤消

use admin

db.revokeRolesFromUser(
    "root",
    [
        { role: "adminAnyDatabase", db: "admin" }
    ]
)
 类似资料:
  • 一个ASP.NET web项目加载了解决方案,但我得到了这个错误

  • 嗨,我知道有几个线程对此,但没有一个解决方案似乎对我有效。 我有一个ASP.NET网站项目,我正试图加载并在Visual Studio中发布该项目。然而,当我加载项目时,我得到了错误: 到目前为止我所尝试的: 获得C://Windows/system32/inetsrv/config的所有权 在我的project_name.csproj文件中设置 返回到旧的team foundation serv

  • 到目前为止,我正在学习驱动器API并阅读了所有这些文档。我只是想打一个经过身份验证的电话列出驱动器中的文件。 这是一个内部应用程序,不需要用户授权,我只需要访问我们公司的驱动器。因此,“服务账户”听起来是正确的。 这是我目前所做的 在Google Developer Console中创建了一个应用程序 同时启用Drive API和Drive SDK 下载并存储了我的p12密钥 在Google Ap

  • 我刚刚通过自制升级到Postgres10.3。我似乎无法通过“psql[数据库名称]”登录我的数据库。 我得到以下错误:

  • 我无法访问节点中的帖子数据。js应用。我也在用express。 app.js: HTML:

  • 我正在使用DBEAVER3.8.0,并试图建立到本地PostgreSQL数据库的一般连接。 若要查看所有数据库,请选中“显示非默认数据库”复选框。当我试图访问我的一个数据库的架构时,我得到了错误