SequoiaDB 提供了一系列的命令来管理用户和角色。这些命令包括:
createRole()
dropRole()
getRole()
listRoles()
updateRole()
grantPrivilegesToRole()
revokePrivilegesFromRole()
grantRolesToRole()
revokeRolesFromRole()
createUsr()
dropUsr()
getUser()
grantRolesToUser()
revokeRolesFromUser()
invalidateUserCache()
本教程提供了指导来演示如何在 SequoiaDB 中开启访问控制并创建第一个_root
用户,以及如何创建其他用户和角色。
通过updateConf()
或者更改节点配置文件的方式来开启访问控制参数--privilegecheck
,并重启节点。
> db = Sdb() > db.createUsr("su", "123", {Roles: ["_root"]})
使用超级用户连接,使用createRole()
命令创建自定义角色foo_bar_read
,赋予其在集合foo.bar
上的查询权限。
> db = Sdb(<hostname>, <port>, "su", "123") > db.createRole({ Role: "foo_bar_read", Privileges: [ { Resource: {cs: "foo", cl: "bar"}, Actions: ["find"] } ] })
创建角色foo_bar_write
,继承角色foo_bar_read
。
> db.createRole({ Role: "foo_bar_write", Privileges: [ { Resource: {cs: "foo", cl: "bar"}, Actions: ["insert", "update", "remove"] } ], Roles: ["foo_bar_read"] })
使用createUsr()
命令创建用户myuser1
,赋予其角色foo_bar_write
。
> db.createUsr("myuser1", "123", {Roles: ["foo_bar_write"]})
使用revokeRolesFromUser()
命令撤销用户myuser1
的角色foo_bar_read
。
> db.revokeRolesFromUser("myuser1", ["foo_bar_read"])
使用grantRolesToUser()
命令授予用户myuser1
角色foo_bar_read
。
> db.grantRolesToUser("myuser1", ["foo_bar_read"])
使用revokeRolesFromRole()
命令撤销角色foo_bar_write
继承的角色foo_bar_read
。
> db.revokeRolesFromRole("foo_bar_write", ["foo_bar_read"])
使用grantRolesToRole()
命令授予角色foo_bar_write
继承的角色foo_bar_read
。
> db.grantRolesToRole("foo_bar_write", ["foo_bar_read"])
使用revokePrivilegesFromRole()
命令撤销角色foo_bar_read
在集合foo.bar
上的查询权限。
> db.revokePrivilegesFromRole("foo_bar_read", [ { Resource: {cs: "foo", cl: "bar"}, Actions: ["find"] } ])
使用grantPrivilegesToRole()
命令授予角色foo_bar_read
在集合foo.bar
上的查询权限。
> db.grantPrivilegesToRole("foo_bar_read", [ { Resource: {cs: "foo", cl: "bar"}, Actions: ["find"] } ])