通过 rails 向 mongo 用户授予角色
Posted
技术标签:
【中文标题】通过 rails 向 mongo 用户授予角色【英文标题】:Grant roles to mongo users via rails 【发布时间】:2020-11-30 01:53:23 【问题描述】:我正在尝试通过 rails 控制器为 mongo 用户分配角色。
我知道我们可以像here 中提到的那样为用户分配角色,但是我们需要更新整个用户。那么有没有办法直接通过rails控制器运行类似grantRole
的查询呢?
【问题讨论】:
您可以将调用放入 rails 控制器。 这里我需要运行类似于 db.grantRolesToUsers() 的查询。你能用示例代码 sn-p 解释一下吗?。 【参考方案1】:db.grantRolesToUser 是一个shell helper。您可以通过在 shell 中键入它的名称而不是调用它来了解它是如何实现的:
MongoDB Enterprise ruby-driver-rs:PRIMARY> db.grantRolesToUser
function(username, roles, writeConcern)
var cmdObj =
grantRolesToUser: username,
roles: roles,
writeConcern: writeConcern ? writeConcern : _defaultWriteConcern
;
var res = this.runCommand(cmdObj);
if (!res.ok)
throw _getErrorWithCode(res, res.errmsg);
你可以看到它使用了runCommand
。
运行任意命令的Ruby机制是documented here。
然后你会做这样的事情:
client.database.command(grantRolesToUser: username, roles: ['foo'])
要获取客户端实例,请使用Foo.collection.client
,其中Foo
是Mongoid 模型类。
【讨论】:
以上是关于通过 rails 向 mongo 用户授予角色的主要内容,如果未能解决你的问题,请参考以下文章