openplanning

Tạo và quản lý Oracle Wallet

  1. Giới thiệu
  2. Oracle Wallet là gì?
  3. Wallet trong Oracle 11g, 12c
  4. Wallet trong Oracle 10g
  5. Thêm chứng chỉ (credentials) truy cập database vào Wallet (10g,11g,12c)

1. Giới thiệu

Tài liệu được viết dựa trên:
  • Oracle 11g (OK for 12c)

2. Oracle Wallet là gì?

Oracle Wallet là cách để lưu trữ các thông tin kết nối tới các database nằm trên nhiều tên miền (domain) khác nhau. Bảng dưới đây minh họa nội dung mà một Wallet chứa.
DB Connection String
Username
Passwod
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db11g)
)
)
dev
dev001
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db12c)
)
)
prod
prod123
Như vậy Wallet chứa các chứng chỉ (credentials) để bạn có thể truy cập vào một database nào đó. Mà khi thông tin về database này thay đổi, bạn có thể cập nhập lại wallet. Ứng dụng của bạn có thể sử dụng các chứng chỉ trên Wallet để truy cập vào một database thay vì tự quản lý thông tin truy cập.
Oracle Wallet lưu trữ các thông tin chứng chỉ vào một tập tin. Sẽ rất nguy hiểm nếu hacker sao chép tập tin này và sử dụng ở máy của họ. Rất may Oracle (11&12) cho phép bạn tạo ra các Wallet địa phương, mà nó chỉ có tác dụng trên máy tính tạo ra nó.

3. Wallet trong Oracle 11g, 12c

Tạo và quản lý Wallet (11g, 12c)
Bạn phải mở CMD với quyền Adminstrator.
CD tới thư mục bin của Oracle:
Các Wallet có thể được copy từ máy này sang một máy tính khác, đó chính là lỗ hổng bảo mật, vì vậy trong Oracle Release 2 trở đi, bạn có thể ngăn chặn hoạt động của Wallet nếu nó được copy sang một máy tính khác bằng cách tạo Wallet địa phương sử dụng lệnh "orapki", thay vì sử dụng "mkstore" như của Oracle 10g.
Sử dụng lệnh tạo Wallet "orapki".
# wallet_location là đường dẫn thư mục tạo wallet.


orapki wallet create -wallet <wallet_location> -pwd <password> -auto_login_local

# Ví dụ:

orapki wallet create -wallet C:/DevPrograms/mywallet -pwd mysecret1 -auto_login_local
Wallet đã được tạo ra, nó gồm 2 file cwallet.sso & ewallet.p12
Hiển thị thông tin Wallet (11g,12c)
Hiển thị thông tin wallet:
# Cú pháp:

orapki wallet display -wallet <wallet-location>

# Ví dụ:

orapki wallet display -wallet C:/DevPrograms/mywallet
Thay đổi mật khẩu wallet (11g,12c)
# Cú pháp:

orapki wallet change_pwd -wallet <wallet-location> -oldpwd <old password> -newpwd <new password>

# Ví dụ:

orapki wallet change_pwd -wallet C:/DevPrograms/mywallet -oldpwd mysecret1 -newpwd mysecret2

4. Wallet trong Oracle 10g

Tạo và quản lý Wallet (10g)
Bạn phải mở CMD với quyền Adminstrator.
CD tới thư mục bin của Oracle:
Sử dụng lệnh tạo wallet:
# wallet_location là đường dẫn thư mục tạo wallet.

mkstore -wrl <wallet_location> -create


# Ví dụ:

mkstore -wrl C:/DevPrograms/db11g/product/11.2.0/dbhome_1/mywallet -create
Nhập mật khẩu cho wallet:
Chú ý: Mật khẩu bạn nhập vào có thể không đúng tiêu chuẩn và bạn sẽ nhận được một thông báo lỗi, chẳng hạn mật khẩu nhập vào không đủ 8 ký tự.
Nhập lại mật khẩu: mysecret1
Wallet đã được tạo ra, nó gồm 2 file cwallet.sso & ewallet.p12

5. Thêm chứng chỉ (credentials) truy cập database vào Wallet (10g,11g,12c)

mkstore -wrl <wallet_location> -createCredential <db_connect_string> <username> <password>
DB Connection String
Username
Passwod
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db11g)
)
)
dev
dev001
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db12c)
)
)
prod
prod123
Ví dụ:
# <wallet_location>

C:\DevPrograms\mywallet

# <db_connect_string>

"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db11g)))"