修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)

Standalone

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
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

      访问控制

      本节介绍用于控制数据库、图和数据权限的方法。

      权限

      showPrivilege()

      获取全部系统权限和图集权限。

      参数

      返回值

      • List<Privilege>:获取的权限列表。

      // Retrieves all running processes in the database
      
      List<Privilege> privileges = driver.showPrivilege();
      
      String graphPrivilegeNames = privileges.stream()
      		.filter(p -> p.getLevel() == PrivilegeLevel.GRAPH_LEVEL)
      		.map(Privilege::getName)
      		.collect(Collectors.joining(", "));
      System.out.println("Graph privileges: " + graphPrivilegeNames);
      
      String systemPrivilegeNames = privileges.stream()
      		.filter(p -> p.getLevel() == PrivilegeLevel.SYSTEM_LEVEL)
      		.map(Privilege::getName)
      		.collect(Collectors.joining(", "));
      System.out.println("System privileges: " + systemPrivilegeNames);
      

      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, SHOW_VECTOR_INDEX, CREATE_VECTOR_INDEX, DROP_VECTOR_INDEX, SHOW_CONSTRAINT, CREATE_CONSTRAINT, DROP_CONSTRAINT
      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, REPLACE_SHARD, SHOW_HDC_SERVER, ADD_HDC_SERVER, DELETE_HDC_SERVER, LICENSE_UPDATE, LICENSE_DUMP, GRANT, REVOKE, SHOW_BACKUP, CREATE_BACKUP, SHOW_VECTOR_SERVER, ADD_VECTOR_SERVER, DELETE_VECTOR_SERVER
      

      策略(角色)

      showPolicy()

      获取数据库中的全部策略。

      参数

      • config: RequestConfig(可选):请求配置。

      返回值

      • List<Policy>:获取的策略列表。

      // Retrieves all policies
      
      List<Policy> policies = driver.showPolicy();
      for (Policy policy : policies) {
        	System.out.println(policy.getName());
      }
      

      manager
      Tester
      sales
      superADM
      

      getPolicy()

      获取数据库中一个指定的策略。

      参数

      • policyName: String:策略名称。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Policy:获取的策略。

      // Retrieves the policy 'Tester'
      
      Policy policy = driver.getPolicy("Tester");
      System.out.println("Graph privileges: " + policy.getGraphPrivileges());
      System.out.println("System privileges: " + policy.getSystemPrivileges());
      System.out.println("Property privileges:");
      System.out.println("- Node (Read): " + policy.getPropertyPrivileges().getNode().getRead());
      System.out.println("- Node (Write): " + policy.getPropertyPrivileges().getNode().getWrite());
      System.out.println("- Node (Deny): " + policy.getPropertyPrivileges().getNode().getDeny());
      System.out.println("- Edge (Read): " + policy.getPropertyPrivileges().getEdge().getRead());
      System.out.println("- Edge (Write): " + policy.getPropertyPrivileges().getEdge().getWrite());
      System.out.println("- Edge (Deny): " + policy.getPropertyPrivileges().getEdge().getDeny());
      System.out.println("Policies: " + policy.getPolicies());
      

      Graph privileges: {amz=[ALGO, DROP_FULLTEXT, INSERT, DELETE, UPSERT], StoryGraph=[UPDATE, READ]}
      System privileges: [TRUNCATE, KILL, TOP]
      Property privileges:
      - Node (Read): [[*, *, *]]
      - Node (Write): []
      - Node (Deny): []
      - Edge (Read): []
      - Edge (Write): [[amz, *, *], [alimama, *, *]]
      - Edge (Deny): [[miniCircle, review, value, timestamp]]
      Policies: [manager, sales]
      

      createPolicy()

      在数据库中创建一个策略。

      参数

      • policy: Policy:待创建的策略;name属性必填,systemPrivilegesgraphPrivilegespropertyPrivilegepolicies选填。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。

      // Creates a new policy 'operator'
      Policy policy = new Policy();
      
      // Set the name of the policy
      policy.setName("operator");
      
      // Set system privileges for the policy
      policy.setSystemPrivileges(Lists.newArrayList("SHOW_GRAPH","TRUNCATE"));
      
      // Create and set graph privileges for the policy
      Map<String,List<String>> graphPrivileges = new HashMap<>();
      graphPrivileges.put("lcc", Lists.newArrayList("UPDATE","INSERT","DELETE","UPSERT"));
      policy.setGraphPrivileges(graphPrivileges);
      
      // Create and set property privileges for the policy
      PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
      PropertyPrivilegeElement node = new PropertyPrivilegeElement();
      node.setRead(Lists.newArrayList(
      		Lists.newArrayList("miniCircle", "account", "*"),
      		Lists.newArrayList("miniCircle", "movie", "name")));
      node.setWrite(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("lcc", "*", "*"))));
      PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
      edge.setRead(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("*", "*", "*"))));
      edge.setDeny(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("miniCircle", "*", "*"))));
      propertyPrivilege.setNode(node);
      propertyPrivilege.setEdge(edge);
      policy.setGraphPrivileges(graphPrivileges);
      
      // Set policies for the policy
      policy.setPolicies(Lists.newArrayList("manager", "sales"));
      
      Response response = driver.createPolicy(policy);
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      alterPolicy()

      修改一个策略中包含的权限和策略。请留意,只有指定的属性会被修改,其余保持不变。

      参数

      • policy: Policy:用于设置新的systemPrivilegesgraphPrivilegespropertyPrivilegepoliciesPolicy对象,通过name属性指定策略。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。

      // Alters the policy 'operator'
      
      Policy policy = new Policy();
      policy.setName("operator");
      policy.setSystemPrivileges(Lists.newArrayList("CREATE_GRAPH","SHOW_GRAPH","SHOW_GRAPH","TRUNCATE"));
      policy.setPolicies(Lists.newArrayList("manager"));
      
      Response response = driver.alterPolicy(policy);
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      dropPolicy()

      删除数据库中一个指定的策略。

      参数

      • policyName: str:策略名称。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。

      // Drops the policy 'operator'
      
      Response response = driver.dropPolicy("operator");
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      用户

      showUser()

      获取全部数据库用户。

      参数

      • config: RequestConfig(可选):请求配置。

      返回值

      • List<User>:获取的用户列表。

      // Retrieves all database users
      
      List<User> users = driver.showUser();
      for (User user : users) {
          System.out.println(user.getUsername());
      }
      

      johndoe
      root
      admin
      

      getUser()

      获取一个指定的数据库用户。

      参数

      • username: String:用户名。
      • config: RequestConfig(可选):请求配置。

      返回值

      • User:获取的用户。

      // Retrieves the database user 'johndoe'
      
      User user = driver.getUser("johndoe");
      System.out.println("CreatedTime: " + user.getCreatedTime());
      System.out.println("Graph privileges: " + user.getGraphPrivileges());
      System.out.println("System privileges: " + user.getSystemPrivileges());
      System.out.println("Property privileges:");
      System.out.println("- Node (Read): " + user.getPropertyPrivileges().getNode().getRead());
      System.out.println("- Node (Write): " + user.getPropertyPrivileges().getNode().getWrite());
      System.out.println("- Node (Deny): " + user.getPropertyPrivileges().getNode().getDeny());
      System.out.println("- Edge (Read): " + user.getPropertyPrivileges().getEdge().getRead());
      System.out.println("- Edge (Write): " + user.getPropertyPrivileges().getEdge().getWrite());
      System.out.println("- Edge (Deny): " + user.getPropertyPrivileges().getEdge().getDeny());
      System.out.println("Policies: " + user.getPolicies());
      

      CreatedTime: Wed Apr 02 11:08:38 CST 2025
      Graph privileges: {amz=[ALGO, INSERT, DELETE, UPSERT], StoryGraph=[UPDATE, READ]}
      System privileges: [TRUNCATE, KILL, TOP]
      Property privileges:
      - Node (Read): [[*, *, *]]
      - Node (Write): []
      - Node (Deny): []
      - Edge (Read): []
      - Edge (Write): [[amz, *, *], [alimama, *, *]]
      - Edge (Deny): []
      Policies: [sales, manager]
      

      createUser()

      创建一个数据库用户。

      参数

      • user:User:待创建的用户;usernamepassword属性必填,systemPrivilegesgraphPrivilegespropertyPrivilegepolicies选填。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。

      // Creates a new user 'user01'
      User user = new User();
      
      // Set the username and password of the user
      user.setUsername("user01");
      user.setPassword("U7MRDBFXd2Ab");
      
      // Set system privileges for the user
      user.setSystemPrivileges(Lists.newArrayList("SHOW_GRAPH","TRUNCATE"));
      
      // Create and set graph privileges for the user
      Map<String,List<String>> graphPrivileges = new HashMap<>();
      graphPrivileges.put("lcc", Lists.newArrayList("UPDATE","INSERT","DELETE","UPSERT"));
      user.setGraphPrivileges(graphPrivileges);
      
      // Create and set property privileges for the user
      PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
      PropertyPrivilegeElement node = new PropertyPrivilegeElement();
      node.setRead(Lists.newArrayList(
      		Lists.newArrayList("miniCircle", "account", "*"),
      		Lists.newArrayList("miniCircle", "movie", "name")));
      node.setWrite(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("lcc", "*", "*"))));
      PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
      edge.setRead(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("*", "*", "*"))));
      edge.setDeny(Lists.newArrayList(
      		Collections.singleton(Lists.newArrayList("miniCircle", "*", "*"))));
      propertyPrivilege.setNode(node);
      propertyPrivilege.setEdge(edge);
      user.setGraphPrivileges(graphPrivileges);
      
      // Set policies for the user
      user.setPolicies(Lists.newArrayList("manager", "sales"));
      
      Response response = driver.createUser(user);
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      alterUser()

      修改一个用户的密码、权限和策略。请留意,只有指定的属性会被修改,其余保持不变。

      参数

      • user: User:用于设置新的passwordsystemPrivilegesgraphPrivilegespropertyPrivilegepoliciesUser对象,通过username属性指定用户。
      • config: RequestConfig(可选):请求配置。

      // Alters the user 'user01'
      
      User user = new User();
      user.setUsername("user01");
      user.setSystemPrivileges(Lists.newArrayList("CREATE_GRAPH","SHOW_GRAPH","SHOW_GRAPH","TRUNCATE"));
      user.setPolicies(Lists.newArrayList("manager"));
      
      Response response = driver.alterUser(user);
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      dropUser()

      删除一个指定的数据库用户。

      参数

      • username: String: 用户名。
      • config: RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。

      // Drops the user 'user01'
      
      Response response = driver.dropUser("user01");
      System.out.println(response.getStatus().getCode());
      

      SUCCESS
      

      完整示例

      package com.ultipa.www.sdk.api;
      
      import com.google.common.collect.Lists;
      import com.ultipa.sdk.UltipaDriver;
      import com.ultipa.sdk.connect.conf.UltipaConfig;
      import com.ultipa.sdk.operate.entity.*;
      import com.ultipa.sdk.operate.response.Response;
      
      import java.util.*;
      
      public class Main {
          public static void main(String[] args) {
              UltipaConfig ultipaConfig = UltipaConfig.config()
                     // URI example: .hosts(Lists.newArrayList("d3026ac361964633986849ec43b84877s.eu-south-1.cloud.ultipa.com:8443"))
                      .hosts(Lists.newArrayList("192.168.1.85:60061","192.168.1.88:60061","192.168.1.87:60061"))
                      .username("<username>")
                      .password("<password>");
      
              UltipaDriver driver = null;
      
              try {
                  driver = new UltipaDriver(ultipaConfig);
      
                  // Creates a new policy 'operator'
                  Policy policy = new Policy();
      
                  // Set the name of the policy
                  policy.setName("operator");
      
                  // Set system privileges for the policy
                  policy.setSystemPrivileges(Lists.newArrayList("SHOW_GRAPH","TRUNCATE"));
      
                  // Create and set graph privileges for the policy
                  Map<String,List<String>> graphPrivileges = new HashMap<>();
                  graphPrivileges.put("lcc", Lists.newArrayList("UPDATE","INSERT","DELETE","UPSERT"));
                  policy.setGraphPrivileges(graphPrivileges);
      
                  // Create and set property privileges for the policy
                  PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
                  PropertyPrivilegeElement node = new PropertyPrivilegeElement();
                  node.setRead(Lists.newArrayList(
                          Lists.newArrayList("miniCircle", "account", "*"),
                          Lists.newArrayList("miniCircle", "movie", "name")));
                  node.setWrite(Lists.newArrayList(
                          Collections.singleton(Lists.newArrayList("lcc", "*", "*"))));
                  PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
                  edge.setRead(Lists.newArrayList(
                          Collections.singleton(Lists.newArrayList("*", "*", "*"))));
                  edge.setDeny(Lists.newArrayList(
                          Collections.singleton(Lists.newArrayList("miniCircle", "*", "*"))));
                  propertyPrivilege.setNode(node);
                  propertyPrivilege.setEdge(edge);
                  policy.setGraphPrivileges(graphPrivileges);
      
                  // Set policies for the policy
                  policy.setPolicies(Lists.newArrayList("manager", "sales"));
      
                  Response response = driver.createPolicy(policy);
                  System.out.println(response.getStatus().getCode());
              } catch (InterruptedException e) {
                  throw new RuntimeException(e);
              } finally {
                  if (driver != null) {
                      driver.close();
                  }
              }
          }
      }
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写