我想知道是否可以创建UDF来解密通过使用私钥作为加密值插入到表中的值。我在谷歌上真的找不到任何东西。我发现的唯一一件事是,可能有一个选项可以使用JavaScript UDF和CryptoJS实现这一点,但我不能理解是否确实可以导入要在UDF中使用的CryptoJS模块。根据我在文档中收集的信息,这是不可能的。
有没有人知道这样的特性、可能性或变通方法?谢谢!
发布于 2020-06-16 10:02:08
实际上,您并不需要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
发布于 2020-08-11 02:34:37
您可以使用公共预览功能External Tokenization。
外部令牌化允许组织在将敏感数据加载到Snowflake之前对其进行令牌化,并在查询运行时使用具有外部函数的掩蔽策略动态解除数据令牌化。
甚至还有一个integration with Protegrity Data Security Gateway。
目前,Snowflake支持使用
跨组织中的所有数据存储(如表、数据库、数据仓库)管理敏感数据的标记化。当Snowflake调用掩码策略中的外部函数时,会向Protegrity Data Security Gateway(DSG)发出REST API调用。
https://stackoverflow.com/questions/61517167
复制相似问题