mongoDB开启的 --auth 之后,使用 db.eval() 报错MongoError: not authorized on wang to execute command
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoDB开启的 --auth 之后,使用 db.eval() 报错MongoError: not authorized on wang to execute command相关的知识,希望对你有一定的参考价值。
mongoDB开启auth验证后,除了创建用户和授权角色外,在执行一些特殊操作的时候,还是会“not authorized”错误,如在执行以下语句时
db.eval(db.whiteBoardUserEdit.find())
会报如下错误:
解决步骤如下:
1.新建一个角色sysAdmin
首先切换到admin库
use admin
db.createRole(
role: "sysAdmin",
privileges: [
resource:
anyResource: true
,
actions: [anyAction]
],
roles: []
)
2.将这个角色授权给当前用户(我的当前用户为admin)
首先还是要切换到admin库
use admin
db.grantRolesToUser(
"admin",
[sysAdmin, role: "sysAdmin", db: "admin" ]
)
3.现在就可以正常执行以下语句了
注意: db.eval()功能强烈不建议使用,因为在4.2已经被官方移除了
IMPORTANT
Starting in version 4.2, MongoDB removes the eval command. The deprecated db.eval(), which wraps the eval command, can only be run against MongoDB 4.0 or earlier versions. For behavior and example, refer to the 4.0 or earlier version of the manual.
参考地址:
https://docs.mongodb.com/manual/reference/method/db.eval/#definition
以上是关于mongoDB开启的 --auth 之后,使用 db.eval() 报错MongoError: not authorized on wang to execute command的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB在windows服务器安装部署及远程连接MongoDB