我花了一些时间试图找出什么是错误的,但由于我无法找到,我决定在这里问。
我正在运行MongoDB(Windows 64位2008 R2)3.2版。3在Windows 8上,路径为:
C:\MongoDB\bin用于安装
html" target="_blank">数据文件夹的C:\data\db
我已经从官方文档中安装了以下视频和教程。
第一个问题可能是客户端(mongo.exe)和服务器(mongod.exe)之间的连接,因为我不知道这是否是一个问题。
我发射了mongod。exe通过命令行(具有管理员权限),一切正常,我收到消息:
waiting for connections on port 27017
但是当我通过命令行的新实例启动mongo.exe时,服务器(mongod.exe)不会打印一条消息说有一个新的连接(在我看的教程中就是这种情况)
另一边mongo.exe指纹
connecting to : test
我不知道在这一点上一切是否正确,但我仍然尝试了一些基本的命令,如:
show dbs
返回未经管理员授权执行命令的
基本上,我尝试的所有命令都有相同的错误消息,即使是我刚刚用
use'dbName'
一些在线回答说我必须创建一个具有适当角色的用户,我尝试了这个。仍然是相同的错误消息
未被授权执行命令
我的问题如下:
启动mongo.exe时mongod.exe不显示新连接是否正常?如果它是正确的,那么我能做些什么来使基本命令工作呢?
其他信息:
我尝试过几次卸载/重新安装,在Windows安装程序中使用“自定义模式”和“完整模式”,但它总是导致相同的问题。
我还尝试按照官方文档创建MongoDB服务,但我不确定这是否是个好主意。(我无法添加更多链接,但它位于我共享的第二个链接的一个部分中。
编辑部分:
我决定在另一台多年未接触过的电脑上试用它,它运行在64位Windows7上。
我复制了这台计算机根部的MongoDB安装文件夹,创建\data\db文件夹并启动mongod.exe.
然后我启动了mongo.exe,这次,mongod.exe打印了一条信息,说有一个新的开放连接,但在我的实际电脑上没有。我认为问题就出在这里,因为我能够从官方留档开始基本教程,并执行简单的命令,如创建新数据库、插入、查找、显示数据库等。我不能在我的实际电脑上做的一切。
所以我认为问题是来自mongod之间的联系。exe和mongo。exe
您知道我如何解决这个问题吗?因为我尝试过几次卸载。
另外,在您按照cmd-1创建用户后,请通过cmd-2为用户分配读/写/根角色,然后通过cmd"mongo-auth"重启mongob。
将角色分配给用户的好处是您可以通过mongo shell或python/java等进行读写操作,否则在尝试读写数据库时会遇到“pymongo.errors.OperationFailure:notauthorized”。
cmd-1:
use admin
db.createUser({
user: "newUsername",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
cmd-2:
db.grantRolesToUser('newUsername',[{ role: "root", db: "admin" }])
创建如下用户:
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
然后按照以下步骤进行连接:
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
检查手册:
https://docs.mongodb.org/manual/tutorial/enable-authentication/
您应该使用权限改造启动mongos实例,即--auth命令行选项,例如:
$ mongod --auth
让我们启动mongo shell,并在管理数据库中创建管理员:
$ mongo
> use admin
> db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
现在如果你运行命令"db.stats()",或"显示用户",你会得到错误"未授权管理员执行命令..."
> db.stats()
{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { dbstats: 1.0, scale: undefined }",
"code" : 13,
"codeName" : "Unauthorized"
}
原因是您仍然没有将角色“read”或“readWrite”授予用户myUserAdmin。您可以按以下方式进行操作:
> db.auth("myUserAdmin", "abc123")
> db.grantRolesToUser("myUserAdmin", [ { role: "read", db: "admin" } ])
现在您可以验证它(命令“show users”现在可以工作了):
> show users
{
"_id" : "admin.myUserAdmin",
"user" : "myUserAdmin",
"db" : "admin",
"roles" : [
{
"role" : "read",
"db" : "admin"
},
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
现在,如果您运行“db.stats()”,您也可以:
> db.stats()
{
"db" : "admin",
"collections" : 2,
"views" : 0,
"objects" : 3,
"avgObjSize" : 151,
"dataSize" : 453,
"storageSize" : 65536,
"numExtents" : 0,
"indexes" : 3,
"indexSize" : 81920,
"ok" : 1
}
除了管理数据库之外,这种用户和角色机制也可以应用于MongoDB中的任何其他数据库。
(MongoDB版本3.4.3)
我试图通过Java Apachebeam MongoDbIO连接器连接到MongoDB,得到一个“未授权”错误。 同样的连接细节也适用于Python并能够检索数据。 “org.apache.beam.sdk.io.mongodbo.mongodbio$boundedmongodbsource.$closeresource(Mongodbio.java:407)位于org.apache.beam.s
非常好的一天, 任何帮助都很感激。提前谢了。
我从MongoDB开始,我想使用/通过DBS访问。我做的第一件事是创建和管理用户,并使用auth activate启动mongodb,这是我创建的用户: 之后,我尝试使用以下命令创建用户: 但我得到了这个错误: 我在谷歌上搜索过,但只有两个结果,一个是中文的,另一个不相关,所以我有点迷茫。你知道吗?看起来我的管理用户没有权限,我可以使用以下命令访问mongodb: 提前谢了。
我已经通过https://JWT.io为DocuSign生成了JWT令牌。现在,为了获得访问令牌,我在Curl中使用以下命令,在Windows命令行工具上。rrefering文档https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonWebToken。我得到了“无效授权”。我的请求有什么问题?我
我跟随Vertx的mongo auth的插图如下: 我在本地MongoDB服务器上创建了一个名为“root”的用户: {“_id”:“admin.root”,“user”:“root”,“db”:“admin”,“customData”:{“user”:“XXX”},“roles”:[{“role”:“readWrite”,“db”:“admin”},{“role”:“userAdminAnyDa
我在执行命令时出错