修改密码

请输入密码
请输入密码 请输入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

v5.0
搜索
    v5.0

      策略

      概述

      策略是专为特定用户角色制定的一组权限,通常包含多项权限和其他策略。合理设计和使用策略可以实现基于角色的访问控制。

      显示策略

      获取数据库中的所有策略:

      show().policy()
      

      获取一个特定策略信息,如名为manager的策略:

      show().policy("manager")
      

      策略信息呈现在表格_policy中,包含以下字段:

      字段
      描述
      name 策略名
      graphPrivileges 策略包含的图集权限
      systemPrivileges 策略包含的系统权限
      propertyPrivileges 策略包含的属性权限
      policies 策略包含的其他策略

      创建策略

      使用语句create().policy().params()在数据库中创建策略。

      语法

      create().policy("<name>").params({
        graph_privileges: {
          "<graph>": ["<graphPriv>", "<graphPriv>", ...],
          ...
        }, 
        system_privileges: ["<systemPriv>", "<systemPriv>", ...], 
        property_privileges: {
          "node": {
            "<propertyPriv>": [
              ["<graph>", "<schema>", "<property>"],
              ...
            ],
            ...
          },
          "edge": {
            "<propertyPriv>": [
              ["<graph>", "<schema>", "<property>"],
              ...
            ],
            ...
          }
        },
        policies: ["<policyName>", "<policyName>", ...]
      })
      
      方法 参数 描述
      policy() <name> 策略名,需唯一。命名规范:
      • 2~64个字符
      • 以字母开头
      • 允许使用的字符:字母(A-Z,a-z),数字(0-9)和下划线(_
      params() graph_privileges 为各图集指定需包含在策略中的图集权限;使用"*"指定所有图集
      system_privileges 指定需包含在策略中的系统权限
      property_privileges 指定需包含在策略中的属性权限和属性权限;使用["*", "*", "*"]指定所有图集、所有schema和所有属性
      policies 指定需包含在策略中的策略

      示例

      创建名为superADM的策略,其中包含所有图集权限、所有系统权限以及对所有属性的write权限,但不包含其他策略:

      create().policy("superADM").params({
        graph_privileges: {"*":["READ","INSERT","UPSERT","UPDATE","DELETE","CREATE_SCHEMA","DROP_SCHEMA","ALTER_SCHEMA","SHOW_SCHEMA","RELOAD_SCHEMA","CREATE_PROPERTY","DROP_PROPERTY","ALTER_PROPERTY","SHOW_PROPERTY","CREATE_FULLTEXT","DROP_FULLTEXT","SHOW_FULLTEXT","CREATE_INDEX","DROP_INDEX","SHOW_INDEX","LTE","UFE","CLEAR_JOB","STOP_JOB","SHOW_JOB","ALGO","CREATE_PROJECT","SHOW_PROJECT","DROP_PROJECT","CREATE_HDC_GRAPH","SHOW_HDC_GRAPH","DROP_HDC_GRAPH","COMPACT_HDC_GRAPH"]},
        system_privileges: ["TRUNCATE","COMPACT","CREATE_GRAPH","SHOW_GRAPH","DROP_GRAPH","ALTER_GRAPH","TOP","KILL","STAT","SHOW_POLICY","CREATE_POLICY","DROP_POLICY","ALTER_POLICY","SHOW_USER","CREATE_USER","DROP_USER","ALTER_USER","SHOW_PRIVILEGE","SHOW_META","SHOW_SHARD","ADD_SHARD","DELETE_SHARD","SHOW_HDC_SERVER","ADD_HDC_SERVER","DELETE_HDC_SERVER","LICENSE_UPDATE","LICENSE_DUMP"],
        property_privileges: {
          "node": {"write": [["*", "*", "*"]]},
          "edge": {"write": [["*", "*", "*"]]}
        }
      })
      

      创建名为Tester的策略,其中包含:

      • 图集权限:对所有图集的UPDATE权限
      • 系统权限:SHOW_POLICYALTER_GRAPH
      • 属性权限:
        • 对所有图集所有schema所有点属性的read权限
        • 对图集Tax所有schema下的边属性valuetimewrite权限
        • 图集miniCircle中,名为rate的schema下,对边属性scoredeny权限(即不允许readwrite权限)
      • 策略:manager
      create().policy("Tester").params({
        graph_privileges: {"*": ["UPDATE"]}, 
        system_privileges: ["SHOW_POLICY", "ALTER_GRAPH"],
        property_privileges: {
          "node": {
            "read": [
              ["*", "*", "*"]
            ]
          },
          "edge": {
            "write": [
              ["Tax", "*", "value"],
              ["Tax", "*", "time"]
            ],
            "deny": [
              ["miniCircle", "rates", "score"]
            ]
          }
        },
        policies: ["manager"]
      })
      

      修改策略

      使用语句alter().policy().set()可以修改策略中包含的权限和策略。

      语法

      alter().policy("<name>").set({
        graph_privileges: {
          "<graph>": ["<graphPriv>", "<graphPriv>", ...],
          ...
        }, 
        system_privileges: ["<systemPriv>", "<systemPriv>", ...], 
        property_privileges: {
          "node": {
            "<propertyPriv>": [
              ["<graph>", "<schema>", "<property>"],
              ...
            ],
            ...
          },
          "edge": {
            "<propertyPriv>": [
              ["<graph>", "<schema>", "<property>"],
              ...
            ],
            ...
          }
        },
        policies: ["<policyName>", "<policyName>", ...]
      })
      
      方法 参数 描述
      policy() <name> 策略名
      set() graph_privileges 为各图集指定需在策略中增加的图集权限;使用"*"指定所有图集
      system_privileges 指定需在策略中增加的系统权限
      property_privileges 指定需在策略增加的属性权限和属性权限;使用["*", "*", "*"]指定所有图集、所有schema和所有属性
      policies 指定需在策略中增加的策略

      示例

      修改包含在策略sales中的图集权限,其他类型权限和策略保持不变:

      alter().policy("Tester").set({graph_privileges: {"Tax": ["UPDATE"]}})
      

      修改策略manager中的图集权限、属性权限和策略,系统权限保持不变:

      alter().policy("manager").set({
        graph_privileges: {"*": ["UPDATE", "DELETE"]},
        property_privileges: {
          "node": {
            "write": [["miniCircle","*","*"]]
          },
          "edge": {
            "write": [["miniCircle","*","*"]]
          }
        },
        policies: ["sales"]
      })
      

      删除策略

      使用语句drop().policy()删除策略。

      删除策略manager

      drop().policy("manager")
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写