【隐私计算实训营008——SCQL】

1.SCQL使用/集成最佳实践

目前SCQL只开放API供用户使用/集成

  • 使用SCDBClient上手体验
  • 可以基于SCQL API开发封装白屏产品,或集成到业务链路中

在这里插入图片描述
在这里插入图片描述

1.1 部署系统

  • 环境配置:
    • 机器配置:CPU/MEM最低8C16G
    • 机构之间的网络互通
  • 镜像:secretflow/scql
  • SCDB
    • 启动:/home/admin/bin/scdbserver -config=/path/to/config.yml
  • SCQLEngine
    • 启动:/home/admin/bin/scqlengine --flagfile=/path/to/gflags.conf
      在这里插入图片描述

1.2 项目设置

SCQL中的一些概念

  • Project
    • 多个参与方在协商一致后加入到同一个项目中进行多方安全数据分析
  • 参与方身份认证
    • 参与方执行query时需要进行身份认证
  • 数据表管理
    • 管理参与分析的数据表的schema信息
  • 权限信息管理
    • 表字段的权限信息,特别是CCL信息
      用户在每次执行query的时候,均要提供上述信息,上手成本较高。
      将其映射成如下关系:
      在这里插入图片描述

1.2.1 创建用户(Create user)

  • SCDB内置了一个权限受限的root用户,方便系统bootstrap
    • root用户只能做CREATE database/user等操作
    • root用户无法修改普通用户设置的CCL,无法发起查询(DQL)
    • root用户滥用不会导致数据泄露

在这里插入图片描述
为什么创建用户是需要公钥和签名?

  • 目的是防止伪造身份攻击

如何防止攻击

  1. 前提条件:每个参与方在部署SCQLEngine 节点时,需要生成(或提供)公私钥,并和合作方交换公钥,配置到引擎侧的 authorized profile 文件中;
  2. SCDB 在处理 create user 请求时,会校验签名,确保请求者有对应的私钥:
  3. SCDB 在处理请求者的 DQL 时,会把请求者和查询涉及参与方的公钥信息一起下发给 SCQLEngine。SCQLEngine会先校验自己和合作方的公钥,如果不匹配,就拒绝执行。

1.2.2 创建项目&用户授权

  • 创建一个名为db_test的数据库(项目)
    • root>CREATE DATABASE db_test;
  • 目的:将参与合作方添加到项目中
    • root>GRANT CREATE,GRANT OPTION,DROP ON db_test.* TO alice
  • 创建表
    • alice> CREATE TABLE db_test.ta(ID string,…,age int)REF_TABLE=alice.user_credit DB_TYPE=‘mysql’

设置CCL
在这里插入图片描述

1.3 联合分析

在这里插入图片描述

2. SCQL工作原理

在这里插入图片描述
SCQL对于同种查询内置了多种优化转换方式,
在这里插入图片描述

3. 使用SecretNote上手体验P2P的SCQL

在这里插入图片描述

3.1 安装部署

在这里插入图片描述
官方安装文档

# 从官网下载scql
git clone https://github.com/secretflow/scql.git
# 进入scql/examples/p2p-tutorial/
cd scql/examples/p2p-tutorial/
# 生成公私钥,并交换alice和bob的公私钥
bash setup.sh
# 使用docker compose拉起双方(这里的tk-sn是指去一个前缀)
docker compose -p tk-sn up -d
# 查看状态
docker compose -p tk-sn ps
# 查看启动的日志
docker-compose -p tk-sn logs engine_alice
# 查看启动端口
cat .env
# 启动Secretnote
secretnote -mode=scql --party=alice --host=http://127.0.0.1:8081 --allow-root
# 开启一个新的终端
secretnote -mode=scql --party=bob --host=http://127.0.0.1:8082 --allow-root

3.2 使用secretNote

3.2.1 创建项目

在这里插入图片描述

3.2.2 邀请合作者

进入项目后可以点击右上角的➕进行邀请。

3.2.3 创建表

在alice下创建如图所示的表
在这里插入图片描述
bob端创建如图所示的表:
在这里插入图片描述

3.2.4 设置CCL

如下是使用命令的方式进行设置,我们采用可视化的方式进行相同的操作。
在这里插入图片描述
通过如下进入配置界面:
在这里插入图片描述
在这里插入图片描述

3.2.5 CSQL查询

新建jupyter,alice可以查看自己的数据,但不能查看别人的数据(因为方式不被允许)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值