如何解决读取数据库错误:未在 mongo DB 中授权
how to solve the error reading database : not authorized in mongo DB
我正在使用 Mongo 数据库 3.4 版并且我在数据库中有一个用户
C:\Program Files\MongoDB\Server.4\bin>mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
> use admin
switched to db admin
> db.auth("myUserAdmin","abc123");
1
我使用了以下带有身份验证的查询来恢复转储文件
mongorestore --host 50.50.1.57:27017 --username myUserAdmin --password abc123 --authenticationDatabase admin --db targetdb E:\test\DB\test_02_19_2018_06_00_01\test
但是我遇到了问题,你能给我建议吗
2018-02-19T14:45:29.743+0530 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-02-19T14:45:29.745+0530 building a list of collections to restore from E:\test\DB\test_02_19_2018_06_00_01\test dir
2018-02-19T14:45:29.790+0530 Failed: targetdb.access_token: error reading database: not authorized on targetdb to execute command { listCollections: 1, cursor: { batchSize: 0 } }
创建具有读写权限的用户并尝试
db.createUser( { "user" : "user123", "pwd": "pass",
"roles" : [{ role: "dbOwner", db: "livmor_mongo" },
{
"role" : "readWrite",
"db" : "livmor_mongo"
} ] } )
您也可以使用 userAdminAnyDatabase 角色代替 readWrite
MyUserAdmin
没有足够的权限恢复到 targetdb
。
您可以使用 Mongodb 的内置角色:
restore,这将为您提供从不包括 system.profile 收集数据的备份恢复数据所需的权限。它还将为您提供对任何资源的以下操作:
listCollections
这将解决您看到的错误:
not authorized on targetdb to execute command { listCollections: 1, cursor: { batchSize: 0 } }
backup 将提供备份数据所需的最低权限。
使用正确的 roles/privs 运行 更新您当前的用户:
db.updateUser( "MyUserAdmin",
{ roles : [
{ role : "restore", db : "admin" },
{ role : "backup", db : "admin" }
] } )
我正在使用 Mongo 数据库 3.4 版并且我在数据库中有一个用户
C:\Program Files\MongoDB\Server.4\bin>mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
> use admin
switched to db admin
> db.auth("myUserAdmin","abc123");
1
我使用了以下带有身份验证的查询来恢复转储文件
mongorestore --host 50.50.1.57:27017 --username myUserAdmin --password abc123 --authenticationDatabase admin --db targetdb E:\test\DB\test_02_19_2018_06_00_01\test
但是我遇到了问题,你能给我建议吗
2018-02-19T14:45:29.743+0530 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-02-19T14:45:29.745+0530 building a list of collections to restore from E:\test\DB\test_02_19_2018_06_00_01\test dir
2018-02-19T14:45:29.790+0530 Failed: targetdb.access_token: error reading database: not authorized on targetdb to execute command { listCollections: 1, cursor: { batchSize: 0 } }
创建具有读写权限的用户并尝试
db.createUser( { "user" : "user123", "pwd": "pass",
"roles" : [{ role: "dbOwner", db: "livmor_mongo" },
{
"role" : "readWrite",
"db" : "livmor_mongo"
} ] } )
您也可以使用 userAdminAnyDatabase 角色代替 readWrite
MyUserAdmin
没有足够的权限恢复到 targetdb
。
您可以使用 Mongodb 的内置角色:
restore,这将为您提供从不包括 system.profile 收集数据的备份恢复数据所需的权限。它还将为您提供对任何资源的以下操作:
listCollections
这将解决您看到的错误:
not authorized on targetdb to execute command { listCollections: 1, cursor: { batchSize: 0 } }
backup 将提供备份数据所需的最低权限。
使用正确的 roles/privs 运行 更新您当前的用户:
db.updateUser( "MyUserAdmin",
{ roles : [
{ role : "restore", db : "admin" },
{ role : "backup", db : "admin" }
] } )