Tạo và quản lý Oracle Wallet
Công ty Vĩnh Cửu tuyển dụng lập trình viên Java

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.

3- Wallet trong Oracle 11g, 12c

3.1- 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ách, đó chính là lỗ hổng bảo mật, vì vậy trong Oracle Release 2 trở đi,
Wallets can be copied to different machines, which can represent a security risk. In 11g Release 2, 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

3.2- 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

3.3- 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

4.1- 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)))"