Как подключиться к другому пользователю базы данных по ссылке Oracle с базой данных с Kerberised аутентификацией - PullRequest
0 голосов
/ 09 июля 2020

Фон:

2 хоста базы данных (с пользователями): DB1 (UserA), DB2 (UserA, UserB)

Ссылка на базу данных из DB1 , UserA , создан и отлично работает со следующим SQL

CREATE DATABASE LINK "DB_LINK"
   USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <DB2'S HOSTNAME>)(PORT = <PORT#>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <DB2'S NAME>)
)
)';

, и он подключен к DB2, UserA , это одна и та же учетная запись.

Но в моем случае я хочу подключиться к другому пользователю БД ( UserB ) в приведенной выше ссылке на базу данных, попробовал какое-то предложение на Inte rnet, которое работает, но требует пароля User_b.

CREATE DATABASE LINK "DB_LINK"
   CONNECT TO UserB IDENTIFIED by <pw>
   USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <DB2'S HOSTNAME>)(PORT = <PORT#>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <DB2'S NAME>)
)
)';

Но в нашем случае мы хотим, чтобы соединение использовало аутентификацию Kerberos, поэтому мы попробовали другое предложение для подключения через UserA и пользовательской скобки к прокси в UserB, здесь у нас нет Пароль User_A в керберизованном виде, и мы используем кеш учетных данных для установления соединения. Итак, у нас нет UserA pw.

CREATE DATABASE LINK "DB_LINK"
   CONNECT TO UserA[UserB] IDENTIFIED by <UserA's pw>
   USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <DB2'S HOSTNAME>)(PORT = <PORT#>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <DB2'S NAME>)
)
)';

Как подключиться к UserB без указания паролей?

Кроме того, разрешение было предоставлено

ALTER USER UserB GRANT CONNECT THROUGH UserA;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...