Как авторизовать комбинацию пользователь / приложение в Oracle? - PullRequest
2 голосов
/ 31 мая 2010

Я хотел бы авторизовать комбинацию пользователь / приложение, а не только пользователя.

Сценарий состоит в том, что мы создали приложение, которое направляет пользователя к безопасным обновлениям некоторых данных.

Если тот же пользователь устанавливает PL / SQL Dev, Toad или любой другой инструмент управления Oracle, он может редактировать данные способами, запрещенными приложением.

Ответы [ 3 ]

2 голосов
/ 31 мая 2010

Вы можете использовать прокси-пользователя для ограничения доступа к базе данных. Ваши пользователи смогут подключаться (аутентификация) и активировать роль (авторизацию) только через учетную запись среднего уровня. Им не нужно будет знать свой пароль БД. Они могут быть аутентифицированы извне (например, с помощью AD).

См. эту тему в AskTom и документацию для дальнейшего чтения.

2 голосов
/ 31 мая 2010

Хороший ответ Винсента (и он также хорошо отмечает в своем комментарии о подмене исполняемого файла).

Более программный метод (без промежуточного уровня) см. В моем ответе на аналогичный вопрос. В основном это включает в себя кодирование ALTER SESSION в вашем приложении, которое обеспечивает роль.

0 голосов
/ 31 мая 2010

Представление v $ session содержит столбец 'program'. Содержит название подключенного приложения. Вы можете использовать эту информацию.

Чтобы определить идентификатор сессии, используйте это:

выберите SYS_CONTEXT ( 'USERENV', 'SID') от двойного;

...