文档中心

运维管理

管理用户和角色

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"]
      }
   ])
回到顶部