在 Ubuntu 上对接 Oracle 数据库 时,“加密”通常涉及 三个层面:
下面按常见场景说明。
适用于:
sqlnet.ora + tnsnames.ora# sqlnet.ora
SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.CRYPTO_CHECKSUM_CLIENT = REQUIRED
SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/wallet)))
# tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = oracle-host)(PORT = 2484))
(CONNECT_DATA = (SERVICE_NAME = orclpdb))
)
✅ 连接示例:
sqlplus user/pass@ORCL
最简单的一种方式。
# sqlnet.ora
SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256)
SQLNET.CRYPTO_CHECKSUM_CLIENT = REQUIRED
⚠️ 需要 Oracle 服务端也开启
CREATE TABLESPACE sec_ts
DATAFILE '/u01/oradata/sec01.dbf'
ENCRYPTION USING 'AES256'
DEFAULT STORAGE(ENCRYPT);
CREATE TABLE users (
id NUMBER,
name VARCHAR2(50),
card VARCHAR2(50) ENCRYPT
);
适合整台服务器加密:
sudo cryptsetup luksFormat /dev/sdb
sudo cryptsetup open /dev/sdb oracle_disk
gocryptfsencfseCryptfs示例:
gocryptfs /oracle/secret /mnt/oracle
| 工具 | 是否支持加密 |
|---|---|
| sqlplus | ✅ SSL / NNE |
| cx_Oracle | ✅ SSL |
| JDBC | ✅ TLS |
| ODBC | ✅ |
✅ 最佳实践
为了给你更精准的方案,请补充:
我可以给你 完整配置文件示例。