隐语SecretFlow实训营-第8讲:快速上手隐语SCQL的开发实践

IQ50zzzZ 2024-04-03 18:03:45

SCQL使用/集成实践

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

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

image.png
使用流程:
image.png

部署系统

  • 环境配置:
    • 机器配置: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

image.png

创建用户

SCDB内置了一个权限受限的root用户,方便系统bootstrap

  • root用户只能做CREATE database/user等操作
  • root用户无法修改普通用户设置的CCL,无法发起查询(DQL)
  • root用户滥用不会导致数据泄露

为什么创建用户是需要公钥和签名?
目的是防止伪造身份攻击。
如何防止攻击?

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

创建项目&用户授权

创建一个名为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
image.png

联合分析

image.png

...全文
27 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

465

社区成员

发帖
与我相关
我的任务
社区描述
隐语开源社区,隐私计算开发者交流和讨论的平台。
密码学可信计算技术安全 企业社区
社区管理员
  • 隐语SecretFlow
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

【最新活动】

3月18日:隐私计算实训营第一期

试试用AI创作助手写篇文章吧