修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      权限

      概述

      权限(Privilege)是嬴图数据库用户身份验证管理的最小单位,分命令权限和属性权限两类。

      命令权限允许用户执行相应的嬴图GQL命令,可根据命令的作用域分为:

      • 图集权限 (Graph Privilege):指用户有权使用与某个图集的schema、属性、加速索引、元数据、路径、算法和后台任务相关的嬴图GQL命令,分配权限时需指定具体的图集.
      • 系统权限 (System Privilege):指用户有权使用与当前嬴图数据库的权限、策略、用户、图集、实时进程相关的嬴图GQL命令。

      关于所有的命令权限及其对应的嬴图GQL命令,请参考权限分类

      属性权限允许(或拒绝)用户读(属性过滤、返回属性值)、写(增、删、改)相应的自定义属性。分配权限时需指定图集和schema,共分为三种:

      • READ:指用户有权读某个自定义属性;
      • WRITE:指用户有权读、写某个自定义属性;
      • DENY:指用户无权读、写某个自定义属性。

      DENY的优先级高于READ和WRITE。当针对一个自定义属性的DENY和READ(或WRITE)同时存在时,最终效果为DENY。

      查看权限

      返回的表名:_privilege
      返回的表头:graphPrivileges|systemPrivileges(图集权限、系统权限)

      // 查看系统支持的命令权限信息
      show().privilege()
      

      追加权限

      追加属性权限

      // 为指定用户或策略追加点、边属性权限
      grant().privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
      
      // 为指定用户或策略追加点属性权限
      grant().node_privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
              
      // 为指定用户或策略追加边属性权限
      grant().edge_privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
      

      本例追加策略sales对图集supplychain的点属性@product.price的READ权限:

      grant().node_privilege(["READ"]).on(
        "supplychain",
        @product,
        "price"
      ).policy("sales")
      

      本例追加用户admin002对所有图集所有属性的WRITE权限:

      grant().privilege(["WRITE"]).on(
        "*",
        @*,
        "*"
      ).user("admin002")
      

      上例中的参数on()也可以简写为on("*")

      追加系统权限

      // 为指定用户或策略追加系统权限
      grant().system().privilege(<[]system_privileges>).<user|policy>("<name>")
      

      本例追加用户admin002的系统权限TOP和KILL:

      grant().system().privilege(["TOP","KILL"]).user("admin002")
      

      追加多种权限

      // 为指定用户追加多种权限及策略
      grant().user("<username>").params({
        graph_privileges: <{}graph_privileges?>, 
        system_privileges: <[]system_privileges?>, 
        property_privileges: <{}property_privileges?>, 
        policies: <[]policies?>
      })
      

      其中的数据格式为:

      // <{}graph_privileges>
      {
        "<graph1>":["<graph_privilege>", "<graph_privilege>", ...],
        "<graph2>":["<graph_privilege>", "<graph_privilege>", ...],
        ...
      }
      
      // <{}property_privileges>
      {
        "node": {
          "read": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
          "write": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
          "deny": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
        },
        "edge": {
          "read": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
          "write": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
          "deny": [
            ["<graph>", "<@schema?>", "<property?>"],
            ["<graph>", "<@schema?>", "<property?>"],
            ...
          ],
        }
      }
      

      本例给用户user02追加所有图集的UPDATE权限、系统权限STAT、所有图集所有属性的WRTIE权限以及策略management:

      grant().user("user02").params({
        graph_privileges: {"*": ["UPDATE"]}, 
        system_privileges: ["STAT"],
        property_privileges: {
          "node": {
            "write": [["*", "*", "*"]]
          },
          "edge": {
            "write": [["*", "*", "*"]]
          }
        },
        policies: ["management"]
      })
      

      撤回权限

      撤回属性权限

      // 从指定用户或策撤回加点、边属性权限
      revoke().privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
      
      // 从指定用户或策略撤回点属性权限
      revoke().node_privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
              
      // 从指定用户或策略撤回边属性权限
      revoke().edge_privilege(["READ" | "WRITE" | "DENY"]).on(
        "<graph>", 
        <@schema?>, 
        "<property?>"
      ).<user|policy>("<name>")
      

      本例撤回策略sales对图集supplychain的点属性@product.price的READ权限:

      revoke().node_privilege(["READ"]).on(
        "supplychain",
        @product,
        "price"
      ).policy("sales")
      

      本例撤回用户admin002对所有图集所有属性的WRITE权限:

      revoke().privilege(["WRITE"]).on(
        "*",
        @*,
        "*"
      ).user("admin002")
      

      上例中的参数on()也可以简写为on("*")

      撤回系统权限

      // 从指定用户或策略撤回系统权限
      revoke().system().privilege(<[]system_privileges>).<user|policy>("<name>")
      

      本例撤回用户admin002的系统权限TOP和KILL:

      revoke().system().privilege(["TOP","KILL"]).user("admin002")
      

      撤回多种权限

      // 从指定用户撤回多种权限及策略
      revoke().user("<username>").params({
        graph_privileges: <{}graph_privileges?>, 
        system_privileges: <[]system_privileges?>, 
        property_privileges: <{}property_privileges?>, 
        policies: <[]policies?>
      })
      

      其中<{}graph_privileges><{}property_privileges>的数据格式同追加多种权限

      本例撤回用户user02所有图集的UPDATE权限、系统权限STAT、所有图集所有属性的WRTIE权限以及策略management:

      revoke().user("user02").params({
        graph_privileges: {"*": ["UPDATE"]}, 
        system_privileges: ["STAT"],
        property_privileges: {
          "node": {
            "write": [["*", "*", "*"]]
          },
          "edge": {
            "write": [["*", "*", "*"]]
          }
        },
        policies: ["management"]
      })
      

      权限分类

      用户管理权限

      名称 作用域 合法命令
      SHOW_PRIVILEGE system show().privilege()
      SHOW_POLICY system show().policy()
      CREATE_POLICY system create().policy()
      ALTER_POLICY system alter().policy()
      DROP_POLICY system drop().policy()
      SHOW_USER system show().user()
      CREATE_USER system create().user()
      ALTER_USER system alter().user()
      DROP_USER system drop().user()
      GRANT system grant()
      REVOKE system revoke()

      注:命令show().self()无需授权即可被任何用户合法使用。

      图建模管理权限

      名称 作用域 合法命令
      STAT system stats()
      SHOW_GRAPH system show().graph()
      CREATE_GRAPH system create().graph()
      ALTER_GRAPH system alter().graph()
      DROP_GRAPH system drop().graph()
      MOUNT_GRAPH system mount()
      UNMOUNT_GRAPH system unmount()
      SHOW_SCHEMA graph show().schema(), show().node_schema(), show().edge_schema()
      CREATE_SCHEMA graph create().node_schema(), create().edge_schema()
      ALTER_SCHEMA graph alter().node_schema(), alter().edge_schema()
      DROP_SCHEMA graph drop().node_schema(), drop().edge_schema()
      SHOW_PROPERTY graph show().property(), show().node_property(), show().edge_property()
      CREATE_PROPERTY graph create().node_property(), create().edge_property()
      ALTER_PROPERTY graph alter().node_property(), alter().edge_property()
      DROP_PROPERTY graph drop().node_property(), drop().edge_property()
      SHOW_FULLTEXT graph show().fulltext(), show().node_fulltext(), show().edge_fulltext()
      CREATE_FULLTEXT graph create().node_fulltext(), create().edge_fulltext()
      DROP_FULLTEXT graph drop().node_fulltext(), drop().edge_fulltext()
      SHOW_INDEX graph show().index(), show().node_index(), show().edge_index()
      CREATE_INDEX graph create().node_index(), create().edge_index()
      DROP_INDEX graph drop().node_index(), drop().edge_index()
      LTE graph LTE()
      UFE graph UFE()
      TRUNCATE system truncate()
      COMPACT system compact()

      图数据管理权限

      名称 作用域 合法命令
      INSERT graph insert(), insert().overwrite()
      UPSERT graph upsert()
      UPDATE graph update()
      DELETE graph delete()
      DELETE_NODE graph delete().nodes()
      DELETE_EDGE graph delete().edges()
      TEMPLATE graph n(), e(), re(), le(), nf(), graph()
      KHOP graph khop()
      AB graph ab()
      SPREAD graph spread()
      AUTONET graph autonet()
      FIND graph find()
      FIND_NODE graph find().nodes()
      FIND_EDGE graph find().edges()

      高级权限

      名称 作用域 合法命令
      ALGO graph algo()
      SHOW_ALGO graph show().algo()
      SHOW_TASK graph show().task()
      CLEAR_TASK graph clear()
      STOP_TASK graph stop()
      SHOW_BACKUP graph db.backup.show()
      CREATE_BACKUP graph db.backup.create()
      RESTORE_BACKUP graph db.backup.restore()
      TOP system top()
      KILL system kill()
      SHOW_TRIGGER graph show().trigger(), show().node_trigger(), show().edge_trigger()
      CREATE_TRIGGER graph create().node_trigger(), create().edge_trigger()
      DROP_TRIGGER graph drop().node_trigger(), drop().edge_trigger()
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写