Method 与 URL
撤销用户已拥有的权限:
POST https://{实例访问 IP 地址}:{实例网络端口}/user/revoke
。说明:
root 用户为数据库的默认用户,享有最高权限级别,无法被任何账号(包括其自身)撤销。
撤销权限时,权限需要和授予时完全对应,包括资源对象和允许的操作,都需要保持一致。
只能针对原本层级回收权限,不能单独回收子对象的权限。例如,用户拥有 *.* 下的权限,那么不能单独回收 db.* 或者 db.coll 的权限。
只能回收授予时指定的 action。例如,用户拥有某个资源对象的 readWrite 权限,那么回收时不能单独回收其 read 权限。
授权后,如果资源对象被删除,权限不会被撤销。后续如果该资源对象被重新创建,用户依然拥有原本的访问权限。建议用户在删除资源对象后,同时清理对应的访问权限。
使用示例
如下示例,撤销用户 app-user 对数据库 db-test1 下集合的 DDL 操作权限。
curl -i -X POST \\-H 'Content-Type: application/json' \\-H 'Authorization: Bearer account=root&api_key=A5VOgsMpGWJhUI0WmUbY********************' \\http://10.0.X.X:80/user/revoke
\\-d '{"user": "app_user","privileges": [{"resource": "db0.*","actions": ["read"]}]}'
请求参数
参数名 | 参数含义 | 子参数 | 数据类型 | 是否必填 | 参数配置 |
user | 用户名 | - | string | 是 | 需撤销操作权限的用户名。 长度要求:1~32字符。 字符类型要求:只能使用英文字母(大写 A~Z、小写 a~z)、数字(0~9)、下划线(_),并以英文字母开头。 |
privileges | 指定撤销用户的资源对象以及其权限,支持一次撤销多条权限。 | resource | string | 是 | 指定用户撤销的资源对象,必须与授权时的指定的层级范围一致。 全局:对实例下的所有 DB 和 Collection 对象授权。配置方式: "resource": "*.*" 。 DB 层级:对某个 DB 授权,包括该 DB 下的所有Collection。配置方式: "resource": "db0.*", 其中,db0 指授权的数据库名。 Collection 层级:对某个特定集合授权,配置方式为为 "resource": "db0.test_coll" 其中,db0 指授权的数据库名,test_coll 为授权的集合名。 |
| | actions | array | 是 | 指定资源对象允许操作的权限,必须与授权时的权限保持一致。 dbAdmin:允许执行创建(create)、删除(drop)、清空(truncate)等数据定义语言(DDL)操作。 read:仅限于执行查询(query)和搜索(search)等读取操作,禁止进行任何数据修改。 readWrite:允许执行查询(query)、搜索(search)等读取操作,以及插入(upsert)、更新(update)等写入操作。 |
响应消息
{"code": 0,"msg": "Operation success"}