betacode

Создание и управление Oracle Wallet

  1. Введение
  2. Что такое Oracle Wallet?
  3. Wallet в Oracle 11g, 12c
  4. Wallet в Oracle 10g
  5. Добавить полномочиня (credentials) доступа базы данных в Wallet (10g,11g,12c)

1. Введение

Данная статья основана на:
  • Oracle 11g (OK for 12c)

2. Что такое Oracle Wallet?

Oracle Wallet это способ хранение информации соединения к базам данных, находящихся в разных доменах (domain). Таблица ниже иллюстрирует содержание в wallet.
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
Таким образом, Wallet содержит сертификаты (credentials), так что вы можете получить доступ к определенной базе данных. Когда меняется информация про базу данных, вы можете обновить wallet. Ваше приложение может использовать сертификаты на Wallet для доступа к базе данных вместо того, чтобы самим управлять информацией доступа.
Oracle Wallet хранит информации сертификата в файле. Это очень опасно, если хакер скопирует этот файл и использует на своих компьютерах. К счастью, Oracle позволяет создавать локальный Wallet, но он работает только на компьютере, который создавает его.

3. Wallet в Oracle 11g, 12c

Создание и управление Wallet (11g, 12c)
Вы должны открыть CMD с авторизацией Adminstrator.
CD к каталогу bin Oracle
Wallet может быть скопирован с одного компьютера на другой компьютер, это и есть дыра в безопасности, поэтому начиная с Oracle Release 2, вы можете остановить работу Wallet, если он будет скопирован на другой компьютер через создание локального wallet, используя команду "orapki", вместо того, чтобы использовать "mkstore" как в Oracle 10g.
Используйте команду создать Wallet "orapki".
# wallet_location is the path to the directory where you want to create and store the wallet.


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


# Example:

orapki wallet create -wallet C:/DevPrograms/mywallet -pwd mysecret1 -auto_login_local
Wallet был создан, он состоит из двух файлов cwallet.sso & ewallet.p12
Отобразить информацию Wallet (11g,12c)
Отображение информации wallet
# Syntax:

orapki wallet display -wallet <wallet-location>

# Example:

orapki wallet display -wallet C:/DevPrograms/mywallet
Изменить пароль wallet (11g,12c)
# Syntax

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

# Example:

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

4. Wallet в Oracle 10g

Создание и управление Wallet (10g)
Вы должны открыть CMD с авторизацией Adminstrator
CD к каталогу bin Oracle:
Используйте команду создать wallet
# wallet_location is the path to the directory where you want to create and store the wallet.

mkstore -wrl <wallet_location> -create


# Example:

mkstore -wrl C:/DevPrograms/mywallet -create
Введите пароль для wallet
Примечание: Пароль, который вы введtте, может быть неподходящий по стандартам, и вы получите сообщение об ошибке, например, при вводе пароля, у которого не хватает восемь символов
Введите еще раз пароль: mysecret1
Wallet был создан, он состоит из двух файлов cwallet.sso & ewallet.p12

5. Добавить полномочиня (credentials) доступа базы данных в 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
Например:
# <wallet_location>

C:\DevPrograms\mywallet

# <db_connect_string>

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