当前位置: 首页 > 知识库问答 >
问题:

雪花UDF与数据加密

裴嘉许
2023-03-14

有没有人知道这样的特性、可能性或变通方法?谢谢!

共有1个答案

海景曜
2023-03-14

实际上不需要UDF来完成此操作。Snowflake支持具有私钥的加密和解密功能。(从技术上讲,这个示例显示了一个被转换成私钥的专用密码短语。不过它也支持直接密钥规范;继续阅读):

select encrypt('Hello, world.', '531daa2aec446116');  -- Displays as binary jibberish.
select hex_encode(encrypt('Hello, world.', '531daa2aec446116'));  -- Displays as HEX. Convert to hex to store as either binary or string.
create temporary table ENCRYPTED_TABLE(COL1 binary, COL2 string);
insert into ENCRYPTED_TABLE select hex_encode(encrypt('Hello, world.', '531daa2aec446116')), hex_encode(encrypt('Hello, world.', '531daa2aec446116'));
select decrypt(COL1, '531daa2aec446116'), decrypt(hex_decode_binary(COL2), '531daa2aec446116') from ENCRYPTED_TABLE;

如果您正在寻找一种方法来解密另一个系统加密的值,那么解密函数可能工作,也可能不工作。Snowflake的加密和解密功能使用AES256密码对称加密。如果源密码是AES-256,您可能会得到解密工作。如果源密码是别的东西,它就不会了。您可能希望尝试ENCRYPT_RAW函数,该函数接受密钥,而不是处理如何将密码短语转换为密钥的复杂性。

https://docs.snowflake.com/en/sql-reference/functions/encrypt.html

 类似资料:
  • 我使用的是spark 2.4.7和spark-snowflake 2.8.4,以及snowflake jdbc 3.12.17。我在Mac OS X Big Sur上。这发生在我升级到大苏尔之后,尽管我不确定这是否有关系。 我试过: 将bouncy castle提供程序作为包依赖项添加到我的配置中 检查是否指向Java 8(它确实指向) 重新安装java 8(使用homebrew和adoptope

  • 使用odbctest和Snowflake 64位ODBC驱动程序for Windows: 这是odbc跟踪的相关部分: sqdrsvc 3dfc-52bc输入SQLPrepare HSTMT 0x000000435c961620 UCHAR*0x000000435d262720[140]“插入”sfdest“.”qauser“.”bt14726“(”varchar_10_col“,”varchar

  • 我有一个每周客户和商店信息数据集, 问题-我必须计算的特征,如总独特的客户在最近1,2,3,4,5,6周..等,截至当前的一周。 我在使用count distinct of customers column over window函数时出错- 我尝试了concat函数创建数组,也没有工作-谢谢帮助! 错误-SQL编译错误:distinct不能与窗口框架或订单一起使用。 如何修复此错误? 输入 输出

  • 文件格式定义: 阶段定义:

  • 我已经看到了一些关于数据库到雪花的问题,但我的问题是如何将表格从雪花到数据库。 到目前为止我所做的:创建了一个集群并将集群附加到我的笔记本上(我正在使用Python) 然后我试着用spark.read读取雪花中的FBK _视频表: 我也尝试过:选项(“dbtable”,“从FBK_VIDEOS中选择*”).load() 但我看到的以下错误: net.snowflake.client.jdbc.Sn