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"]
}
])