Oracle Wallet là một công cụ quan trọng giúp quản lý và bảo mật thông tin xác thực (credentials) trong Oracle Database. Wallet cho phép lưu trữ an toàn các thông tin nhạy cảm như mật khẩu, khóa bảo mật và chứng chỉ số. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về cách sử dụng Wallet trong Oracle Database, từ việc tạo Wallet đến cách tích hợp nó.
Wallet là gì?
Oracle Wallet là một kho lưu trữ an toàn được sử dụng để quản lý các thông tin bảo mật như:
- Mật khẩu người dùng.
- Khóa bảo mật (encryption keys).
- Chứng chỉ số (digital certificates) cho SSL/TLS.
Wallet giúp giảm thiểu rủi ro liên quan đến việc lưu trữ mật khẩu trong các script hoặc file cấu hình, đồng thời hỗ trợ các tính năng bảo mật nâng cao như mã hóa dữ liệu (Transparent Data Encryption – TDE) và xác thực SSL/TLS.
Các bước sử dụng Wallet trong Oracle Database
1. Tạo Wallet
Để tạo một Wallet, sử dụng tiện ích mkstore
hoặc công cụ Oracle Wallet Manager (OWM).
Sử dụng mkstore
:
mkstore -wrl /path/to/wallet -create
-wrl
: Chỉ định đường dẫn đến thư mục Wallet.-create
: Tạo một Wallet mới.
Sau khi chạy lệnh, bạn sẽ được yêu cầu nhập mật khẩu cho Wallet.
2. Thêm thông tin xác thực vào Wallet
Bạn có thể thêm các thông tin xác thực như mật khẩu người dùng vào Wallet.
Thêm mật khẩu người dùng:
mkstore -wrl /path/to/wallet -createCredential db_username db_password
db_username
: Tên người dùng trong database.db_password
: Mật khẩu của người dùng.
3. Cấu hình Oracle Database sử dụng Wallet
Để sử dụng Wallet trong Oracle Database, bạn cần cấu hình các tham số sau trong file sqlnet.ora
và tnsnames.ora
.
File sqlnet.ora
:
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /path/to/wallet)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
SSL_CLIENT_AUTHENTICATION = FALSE
File tnsnames.ora
:
DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = service_name)
)
)
4. Sử dụng Wallet để kết nối database
Sau khi cấu hình, bạn có thể kết nối đến database mà không cần nhập mật khẩu trực tiếp.
Ví dụ kết nối bằng SQL*Plus:
sqlplus /@db
db
: Tên kết nối được định nghĩa trongtnsnames.ora
.
5. Sử dụng Wallet cho Transparent Data Encryption (TDE)
Wallet cũng được sử dụng để quản lý các khóa mã hóa trong TDE.
Cấu hình TDE:
- Tạo Wallet nếu chưa có.
- Thêm khóa mã hóa vào Wallet:
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/path/to/wallet' IDENTIFIED BY wallet_password;
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY wallet_password;
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY wallet_password WITH BACKUP;
- Kích hoạt TDE cho các bảng hoặc tablespace:
ALTER TABLE hr.employees ENCRYPT;
ALTER TABLESPACE users ENCRYPTION ONLINE ENCRYPT;
6. Sử dụng Wallet cho SSL/TLS
Wallet cũng được sử dụng để quản lý chứng chỉ số cho kết nối SSL/TLS.
Cấu hình SSL/TLS:
- Thêm chứng chỉ vào Wallet:
orapki wallet add -wallet /path/to/wallet -cert /path/to/certificate -user_cert -pwd wallet_password
- Cấu hình
sqlnet.ora
vàlistener.ora
để sử dụng SSL/TLS:
SSL_CLIENT_AUTHENTICATION = TRUE
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /path/to/wallet)))
Quản lý Wallet
- Sao lưu Wallet: Đảm bảo sao lưu Wallet thường xuyên để tránh mất dữ liệu.
- Đổi mật khẩu Wallet:
mkstore -wrl /path/to/wallet -changePassword
- Xóa thông tin xác thực:
mkstore -wrl /path/to/wallet -deleteCredential db_username
Lưu ý quan trọng
- Bảo vệ mật khẩu Wallet cẩn thận, vì nếu mất mật khẩu, bạn sẽ không thể truy cập vào các thông tin trong Wallet.
- Đảm bảo rằng thư mục Wallet được bảo vệ bằng các quyền truy cập phù hợp.
- Kiểm tra và cập nhật Wallet thường xuyên để đảm bảo tính bảo mật.
Kết luận
Oracle Wallet là một công cụ mạnh mẽ giúp quản lý và bảo mật thông tin xác thực trong Oracle Database. Bằng cách sử dụng Wallet, bạn có thể tăng cường bảo mật cho các kết nối database, mã hóa dữ liệu và quản lý chứng chỉ SSL/TLS.