openplanning

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

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

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

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

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