select 语句中的 DB2 加密字段
DB2 encrypt field in select statement
所以我需要做一个select语句,同时加密SHA2_512中的一个字段。我不确定它是哪个 DB2 版本,但我尝试了两个查询,但都不起作用。
尝试此查询时:
SELECT HEX(HASH_SHA256('ABCDEFGHIJKLMNOPQRZTUVWXYZ'))
FROM SYSIBM.SYSDUMMY1;
我收到以下错误:
Error: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884,
SQLERRMC=FUNCTION;HASH_SHA256, DRIVER=3.71.22 SQLState: 42884
ErrorCode: -440 Error: DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501,
SQLERRMC=SQL_CURLH200C1, DRIVER=3.71.22 SQLState: 26501 ErrorCode:
-514
使用此查询时
SELECT hash('Charlie at IBM', 3)
FROM SYSIBM.SYSDUMMYU;
Error: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884,
SQLERRMC=FUNCTION;HASH, DRIVER=3.71.22 SQLState: 42884 ErrorCode:
-440 Error: DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501, SQLERRMC=SQL_CURLH200C1, DRIVER=3.71.22 SQLState: 26501 ErrorCode:
-514
(虽然没有哈希函数,查询运行没有任何问题)。有人知道我该如何解决这个问题吗?
我不确定我使用的是哪个 DB2 版本,但是通过使用这些查询我得到了这些结果:
SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1
DSN11015
select GETVARIABLE('SYSIBM.NEWFUN') AS COMPATIBILITY from sysibm.sysdummy1
COMPATIBILITY: V11
https://www.ibm.com/docs/en/db2/11.1?topic=functions-hash
https://www.ibm.com/docs/en/db2-for-zos/12?topic=sf-hash-crc32-hash-md5-hash-sha1-hash-sha256
您似乎在 V11 兼容模式下为 Z/OS“DSN11015”使用 Db2-v11。
此版本缺少 z/OS 的 Db2-v12 中存在的标量函数 HASH_SHA256 (and others)。这就是你的 Db2-for-z/os 版本得到 sqlcode -440(没有这样的函数 HASH...)的原因。
在版本 11 中,IBM 记录了一个函数 ENCRYPT_TDES,它可能对您有所帮助。
Background information on using this function.
有本事可以自己写函数
所以我需要做一个select语句,同时加密SHA2_512中的一个字段。我不确定它是哪个 DB2 版本,但我尝试了两个查询,但都不起作用。
尝试此查询时:
SELECT HEX(HASH_SHA256('ABCDEFGHIJKLMNOPQRZTUVWXYZ'))
FROM SYSIBM.SYSDUMMY1;
我收到以下错误:
Error: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=FUNCTION;HASH_SHA256, DRIVER=3.71.22 SQLState: 42884 ErrorCode: -440 Error: DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501, SQLERRMC=SQL_CURLH200C1, DRIVER=3.71.22 SQLState: 26501 ErrorCode: -514
使用此查询时
SELECT hash('Charlie at IBM', 3)
FROM SYSIBM.SYSDUMMYU;
Error: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=FUNCTION;HASH, DRIVER=3.71.22 SQLState: 42884 ErrorCode: -440 Error: DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501, SQLERRMC=SQL_CURLH200C1, DRIVER=3.71.22 SQLState: 26501 ErrorCode: -514
(虽然没有哈希函数,查询运行没有任何问题)。有人知道我该如何解决这个问题吗?
我不确定我使用的是哪个 DB2 版本,但是通过使用这些查询我得到了这些结果:
SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1
DSN11015
select GETVARIABLE('SYSIBM.NEWFUN') AS COMPATIBILITY from sysibm.sysdummy1
COMPATIBILITY: V11
https://www.ibm.com/docs/en/db2/11.1?topic=functions-hash
https://www.ibm.com/docs/en/db2-for-zos/12?topic=sf-hash-crc32-hash-md5-hash-sha1-hash-sha256
您似乎在 V11 兼容模式下为 Z/OS“DSN11015”使用 Db2-v11。
此版本缺少 z/OS 的 Db2-v12 中存在的标量函数 HASH_SHA256 (and others)。这就是你的 Db2-for-z/os 版本得到 sqlcode -440(没有这样的函数 HASH...)的原因。
在版本 11 中,IBM 记录了一个函数 ENCRYPT_TDES,它可能对您有所帮助。
Background information on using this function.
有本事可以自己写函数