Мы хотим разрешить доступ к БД (Oracle) нашим пользователям только через наше собственное приложение - назовем его «ourTool.exe», установленным локально на компьютерах пользователей. В настоящее время пользователи должны указывать имя пользователя/пароль при запуске «ourTool». Предоставленный пароль пароля дешифруется, и мы используем имя пользователя/дешифрованный пароль для окончательного входа в Oracle DB. Такой подход не позволяет пользователям напрямую обращаться к нашей БД с помощью сторонних инструментов (SQLplus, Excel, Access, ...), и все, что в БД, возможно, было введено/отредактировано с помощью нашего «нашего».Разрешение входа в oracle db только для определенного приложения?
Теперь один из наших клиентов хочет разрешить своим пользователям «единый вход» (с помощью SmartCards/Oracle PKI). При этом пользователь сможет подключиться к нашей БД, не предоставляя никакого пароля каждый раз, когда они запустили «ourTool». Но то же самое будет верно для потенциально опасных инструментов, таких как SQLplus, Excel, Access и т. Д.
Есть ли способ предотвратить это? Как мы можем убедиться, что каждая запись в нашей БД создается или редактируется/удаляется с помощью «ourTool» в этом сценарии?
Будьте осторожны с вложением PW в источник - есть много инструментов, которые позволят вам увидеть встроенные строки ASCII в исполняемом файле. – DCookie
Хорошая точка - да, вам нужно придумать какой-то способ обфускации строки в .exe. – dpbradley
Если вы не обеспечиваете сетевой трафик, они все равно могут получить текст, передаваемый с ПК в базу данных. Я думаю, что шифрование SQL * net является частью одной из дополнительных опций затрат для Enterprise edition. –