修改密码

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

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

      参数

      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • []*structs.Privilege:获取的权限的指针切片。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Retrieves all system privileges and graph privileges
      
      response, _ := driver.Uql("show().privilege()", nil)
      privileges, _ := response.Alias("_privilege").AsPrivileges()
      
      var graphPrivileges []string
      var systemPrivileges []string
      
      for _, privilege := range privileges {
          if privilege.Level == structs.GraphPrivilege {
          	graphPrivileges = append(graphPrivileges, privilege.Name)
        	} else {
          	systemPrivileges = append(systemPrivileges, privilege.Name)
        	}
      }
      
      fmt.Println("Graph Privileges:", graphPrivileges)
      fmt.Println("System Privileges:", systemPrivileges)
      

      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 CREATE_GRAPH_TYPE SHOW_GRAPH_TYPE DROP_GRAPH_TYPE 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()

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

      参数

      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • []*structs.Policy:获取的策略的指针切片。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Retrieves all policies
      
      policies, _ := driver.ShowPolicy(nil)
      
      for _, policy := range policies {
          fmt.Println(policy.Name)
      }
      

      manager
      Tester
      sales
      superADM 
      

      GetPolicy()

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

      参数

      • policyName: string:策略名称。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • *structs.Policy:获取的策略。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Retrieves the policy 'Tester'
      
      policy, _ := driver.GetPolicy("Tester", nil)
      
      fmt.Println("Graph Privileges:", policy.GraphPrivileges)
      fmt.Println("System Privileges:", policy.SystemPrivileges)
      fmt.Println("Property Privileges:")
      fmt.Println("- Node (Read):", policy.PropertyPrivileges.Node.Read)
      fmt.Println("- Node (Write):", policy.PropertyPrivileges.Node.Write)
      fmt.Println("- Node (Deny):", policy.PropertyPrivileges.Node.Deny)
      fmt.Println("- Edge (Read):", policy.PropertyPrivileges.Edge.Read)
      fmt.Println("- Edge (Write):", policy.PropertyPrivileges.Edge.Write)
      fmt.Println("- Edge (Deny):", policy.PropertyPrivileges.Edge.Deny)
      fmt.Println("Policies:", policy.Policies)
      

      Graph Privileges: map[*:[SHOW_PROPERTY READ SHOW_SCHEMA] alimama:[SHOW_JOB SHOW_INDEX] trans:[SHOW_JOB SHOW_INDEX]]
      System Privileges: [ALTER_GRAPH SHOW_GRAPH]
      Property Privileges:
      - Node (Read): [[* * *]]
      - Node (Write): []
      - Node (Deny): []
      - Edge (Read): [[alimama * timestamp]]
      - Edge (Write): [[alimama edgx behavior] [alimama edgx timestamp]]
      - Edge (Deny): []
      Policies: [manager]
      

      CreatePolicy()

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

      参数

      • policy: Policy:待创建的策略;Name字段必填,SystemPrivilegesGraphPrivilegesPropertyPrivilegePolicies选填。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Creates a new policy 'operator'
      
      response, _ := driver.CreatePolicy(&structs.Policy{
        	Name:             "operator",
        	SystemPrivileges: []string{"SHOW_GRAPH", "TRUNCATE"},
        	GraphPrivileges: structs.GraphPrivileges{
          	"lcc": []string{"UPDATE", "INSERT", "DELETE", "UPSERT"},
        	},
        	PropertyPrivileges: structs.PropertyPrivileges{
          	Node: structs.PropertyPrivilegeElement{
            		Read: [][]string{
              		{"miniCircle", "account", "*"},
              		{"miniCircle", "movie", "name"},
            		},
            		Write: [][]string{
              		{"lcc", "*", "*"},
            		},
          	},
          	Edge: structs.PropertyPrivilegeElement{
            		Read: [][]string{
              		{"*", "*", "*"},
            		},
            		Deny: [][]string{
              		{"miniCircle", "*", "*"},
            		},
          	},
        	},
        	Policies: []string{"manager", "sales"},
      }, nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      AlterPolicy()

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

      参数

      • policy: *structs.Policy:用于设置新的SystemPrivilegesGraphPrivilegesPropertyPrivilegePolicies的指向Policy结构体的指针,通过Name字段指定策略。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Alters the policy 'operator'
      
      response, _ := driver.AlterPolicy(&structs.Policy{
          Name:             "operator",
          SystemPrivileges: []string{"CREATE_GRAPH", "SHOW_GRAPH", "SHOW_GRAPH", "TRUNCATE"},
          Policies:         []string{"manager"},
      }, nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      DropPolicy()

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

      参数

      • policyName: string:策略名称。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Drops the policy 'operator'
      
      response, _ := driver.DropPolicy("operator", nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      User

      ShowUser()

      获取全部数据库用户。

      参数

      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • []*structs.User:获取的用户的指针切片。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Retrieves all database users
      
      users, _ := driver.ShowUser(nil)
      for _, user := range users {
          fmt.Println(user.UserName)
      }
      

      johndoe
      root
      admin
      

      GetUser()

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

      参数

      • username: string:用户名。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • *structs.User:获取的用户。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Retrieves the database user 'johndoe'
      
      user, _ := driver.GetUser("johndoe", nil)
      
      fmt.Println("Created Time:", user.CreatedTime)
      fmt.Println("Graph Privileges:", user.GraphPrivileges)
      fmt.Println("System Privileges:", user.SystemPrivileges)
      fmt.Println("Property Privileges:")
      fmt.Println("- Node (Read):", user.PropertyPrivileges.Node.Read)
      fmt.Println("- Node (Write):", user.PropertyPrivileges.Node.Write)
      fmt.Println("- Node (Deny):", user.PropertyPrivileges.Node.Deny)
      fmt.Println("- Edge (Read):", user.PropertyPrivileges.Edge.Read)
      fmt.Println("- Edge (Write):", user.PropertyPrivileges.Edge.Write)
      fmt.Println("- Edge (Deny):", user.PropertyPrivileges.Edge.Deny)
      fmt.Println("Policies:", user.Policies)
      

      Created Time: 2025-04-02T11:08:38.000+08:00
      Graph Privileges: map[*:[SHOW_PROPERTY READ SHOW_SCHEMA] alimama:[SHOW_JOB SHOW_INDEX] trans:[SHOW_JOB SHOW_INDEX]]
      System Privileges: [ALTER_GRAPH SHOW_GRAPH]
      Property Privileges:
      - Node (Read): [[* * *]]
      - Node (Write): []
      - Node (Deny): []
      - Edge (Read): [[alimama * timestamp]]
      - Edge (Write): [[alimama edgx behavior] [alimama edgx timestamp]]
      - Edge (Deny): []
      Policies: [manager]
      

      CreateUser()

      创建一个数据库用户。

      参数

      • user: *structs.User:待创建的用户;UsernamePassword字段必填,SystemPrivilegesGraphPrivilegesPropertyPrivilegePolicies选填。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Creates a new user 'user01'
      
      response, _ := driver.CreateUser(&structs.User{
        	UserName:         "user01",
        	PassWord:         "U7MRDBFXd2Ab",
        	SystemPrivileges: []string{"SHOW_GRAPH", "TRUNCATE"},
        	GraphPrivileges: structs.GraphPrivileges{
          	"lcc": []string{"UPDATE", "INSERT", "DELETE", "UPSERT"},
        	},
        	PropertyPrivileges: structs.PropertyPrivileges{
              Node: structs.PropertyPrivilegeElement{
                  Read: [][]string{
                    	{"miniCircle", "account", "*"},
                    	{"miniCircle", "movie", "name"},
                  },
                  Write: [][]string{
                    	{"lcc", "*", "*"},
                  },
              },
              Edge: structs.PropertyPrivilegeElement{
                  Read: [][]string{
                    	{"*", "*", "*"},
                  },
                  Deny: [][]string{
                    	{"miniCircle", "*", "*"},
                  },
              },
        	},
        	Policies: []string{"manager", "sales"},
      }, nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      AlterUser()

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

      参数

      • user: *structs.User:用于设置新的PasswordSystemPrivilegesGraphPrivilegesPropertyPrivilegePolicies的指向User结构体的指针,通过Username字段指定用户。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Alters the user 'user01'
      
      response, _ := driver.AlterUser(&structs.User{
          UserName:         "user01",
          SystemPrivileges: []string{"CREATE_GRAPH", "SHOW_GRAPH", "SHOW_GRAPH", "TRUNCATE"},
          Policies:         []string{"manager"},
      }, nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      DropUser()

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

      参数

      • username: string: 用户名。
      • confg: *configuration.RequestConfig(可选):请求配置。

      返回值

      • Response:请求结果。
      • error:包含操作过程中遇到的任何问题的错误对象;如果操作成功,则返回nil

      // Drops the user 'user01'
      
      response, _ := driver.DropUser("user01", nil)
      fmt.Println(response.Status.Code)
      

      SUCCESS
      

      完整示例

      package main
      
      import (
      	"fmt"
      	"log"
      
      	"github.com/ultipa/ultipa-go-driver/v5/sdk"
      	"github.com/ultipa/ultipa-go-driver/v5/sdk/configuration"
      	"github.com/ultipa/ultipa-go-driver/v5/sdk/structs"
      )
      
      func main() {
      	config := &configuration.UltipaConfig{
      		// URI example:	Hosts: []string{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"},
      		Hosts:    []string{"192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"},
      		Username: "<usernmae>",
      		Password: "<password>",
      	}
      
      	driver, err := sdk.NewUltipaDriver(config)
      	if err != nil {
      		log.Fatalln("Failed to connect to Ultipa:", err)
      	}
      
      	// Creates a new policy 'operator'
      
      	response, _ := driver.CreatePolicy(&structs.Policy{
      		Name:             "operator",
      		SystemPrivileges: []string{"SHOW_GRAPH", "TRUNCATE"},
      		GraphPrivileges: structs.GraphPrivileges{
      			"lcc": []string{"UPDATE", "INSERT", "DELETE", "UPSERT"},
      		},
      		PropertyPrivileges: structs.PropertyPrivileges{
      			Node: structs.PropertyPrivilegeElement{
      				Read: [][]string{
      					{"miniCircle", "account", "*"},
      					{"miniCircle", "movie", "name"},
      				},
      				Write: [][]string{
      					{"lcc", "*", "*"},
      				},
      			},
      			Edge: structs.PropertyPrivilegeElement{
      				Read: [][]string{
      					{"*", "*", "*"},
      				},
      				Deny: [][]string{
      					{"miniCircle", "*", "*"},
      				},
      			},
      		},
      		Policies: []string{"manager", "sales"},
      	}, nil)
      	fmt.Println(response.Status.Code)
      
      }
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策 数据处理协议
      请勾选表示您已阅读并同意。