Skip to main content

应用示例

本示例主要介绍数据脱敏功能的操作方法。在其他环境中进行数据脱敏的操作方法可能会略有不同。因此,在实际操作过程中,请根据您所处的具体环境和技术栈进行相应的调整和适配。

前提条件

在开始操作前,请确保当前登录用户拥有执行此操作所需权限的角色。有关权限的详细说明,详情请参见 权限 章节。

示例

  1. 登录 ArcGraph。
  2. (可选)创建用户并赋予对应角色。
    1. 创建用户“user1”。
      CREATE USER user1 SET PASSWORD "123456";
    2. 创建角色“rolea”。
      CREATE ROLE rolea;
    3. 赋予角色 ALL 权限。
      GRANT  all on graph all to rolea;
    4. 赋予角色 MASKED 权限。
      GRANT MASKED TO rolea;
    5. 为用户关联角色“rolea”。
      GRANT ROLE rolea TO user1;
    6. (可选)退出当前用户并以“user1”用户登录。
  3. 创建图“datamaskdemo”。
    CREATE GRAPH datamaskdemo;
  4. 使用图“datamaskdemo”。
    USE GRAPH datamaskdemo;
  5. 创建点类型“person”,并对“name”属性除前 3 个字符和最后 4 个字符外的中间字符使用“XXX”符号脱敏。
    CREATE VERTEX person(
    primary key id int(64),
    name string MASKED with (function=partial(3,"XXX",4)),
    salary double MASKED
    );
  6. 创建边类型“knows”,并对“comment”属性除前 3 个字符和最后 2 个字符外的中间字符使用“**”符号脱敏。
    CREATE EDGE knows(
    weight int(64) MASKED,
    comment string MASKED with (function=partial(3, "**",2)),
    FROM person TO person)
    ;
  7. 插入点数据及边数据。
    INSERT (:person{id:1,name:"secret_name1",salary:10000.00});
    INSERT (:person{id:2,name:"secret_name2",salary:20000.00});
    INSERT (:person{id:1})-[:knows{weight:300,comment:"secret comment contents"}]->(:person{id:2});
  8. 查询数据。
    • 查询当前图中所有点。
      示例
      MATCH (n) RETURN n;    
      返回结果示例如下:
      +---------------------------------------------------------------------------------------------------------+
      | n |
      +=========================================================================================================+
      | vid: [_oid: 36990979393191936, label: person], properties: [36990979393191936, 1, secXXXame1, ********] |
      +---------------------------------------------------------------------------------------------------------+
      | vid: [_oid: 36990979393191937, label: person], properties: [36990979393191937, 2, secXXXame2, ********] |
      +---------------------------------------------------------------------------------------------------------+
    • 查询当前图中两点类型间所有边数据。
      示例
      MATCH (a:person)-[e:knows]->(b:person) RETURN e;
      返回结果示例如下:
      +-------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | e |
      +=============================================================================================================================================================+
      | eid: [src: [_oid: 36990979393191936, label: person], dest: [_oid: 36990979393191937, label: person], label: knows, _ts: 0], properties: [********, sec**ts] |
      +-------------------------------------------------------------------------------------------------------------------------------------------------------------+