使用 userAdminAnyDatabase 角色出现 mongo 个授权错误
Getting mongo authorization errors with userAdminAnyDatabase role
我正在尝试获得在新 Ubuntu 机器上处理 mongo 数据库的授权。我创建了一个角色为 userAdminAnyDatabase:
的管理员用户
admin> show users
[
{
_id: 'admin.mongoAdmin',
userId: UUID("590a4465-625a-4fa0-af2e-0f2c75777ac5"),
user: 'mongoAdmin',
db: 'admin',
roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
但是当我尝试做任何事情时都出现授权错误:
admin> use test
switched to db test
test> db.users.find({})
MongoServerError: not authorized on test to execute command { find: "users", filter: {}, lsid: { id: UUID("f3cf2fbc-bbea-4ceb-83a1-b842b5047e74") }, $db: "test" }
我知道我使用的是正确的 id/password,因为当我尝试使用不同的密码 运行 mongo shell 时,它无法以密码开头错误。
Ubuntu 版本为 20.04.4 (Focal); Mongo 版本为 5.0.8:
% mongod --version
db version v5.0.8
Build Info: {
"version": "5.0.8",
"gitVersion": "c87e1c23421bf79614baf500fda6622bd90f674e",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
角色userAdminAnyDatabase
或 userAdmin
授予用户管理权限,即您可以 运行 命令,如 db.createUser()
、db.grantRolesToUser()
或 db.updateUser()
他们不授予读取或写入您数据库的 non-system 集合的权限。
我想你需要授予 dbAdminAnyDatabase, readWriteAnyDatabase or simply root
我正在尝试获得在新 Ubuntu 机器上处理 mongo 数据库的授权。我创建了一个角色为 userAdminAnyDatabase:
的管理员用户admin> show users
[
{
_id: 'admin.mongoAdmin',
userId: UUID("590a4465-625a-4fa0-af2e-0f2c75777ac5"),
user: 'mongoAdmin',
db: 'admin',
roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
但是当我尝试做任何事情时都出现授权错误:
admin> use test
switched to db test
test> db.users.find({})
MongoServerError: not authorized on test to execute command { find: "users", filter: {}, lsid: { id: UUID("f3cf2fbc-bbea-4ceb-83a1-b842b5047e74") }, $db: "test" }
我知道我使用的是正确的 id/password,因为当我尝试使用不同的密码 运行 mongo shell 时,它无法以密码开头错误。
Ubuntu 版本为 20.04.4 (Focal); Mongo 版本为 5.0.8:
% mongod --version
db version v5.0.8
Build Info: {
"version": "5.0.8",
"gitVersion": "c87e1c23421bf79614baf500fda6622bd90f674e",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
角色userAdminAnyDatabase
或 userAdmin
授予用户管理权限,即您可以 运行 命令,如 db.createUser()
、db.grantRolesToUser()
或 db.updateUser()
他们不授予读取或写入您数据库的 non-system 集合的权限。
我想你需要授予 dbAdminAnyDatabase, readWriteAnyDatabase or simply root