Мы используем Oracle 11.2, а серверные процессы, написанные на C ++, выполняются на Solaris 10. У нашего персонала поддержки есть свои собственные имена пользователей Oracle, и у нас есть выделенный пользователь Oracle для наших серверных процессов (назовем его servuser).
В целях аудита нам необходимо убедиться, что только серверные процессы используют учетную запись servuser для внесения изменений, однако для обслуживающего персонала также допустимо обращаться к БД с servuser, если они это делают из Ящик Solaris, на котором размещены процессы сервера.
Очевидным решением этой проблемы будет использование аутентификации ОС - создайте пользователя Solaris для процессов и сопоставьте его с серверу Oracle. Единственная проблема с этим: эти процессы сервера работают на отдельном хосте от экземпляра Oracle. Включение удаленной авторизации - это огромная, хорошо известная дыра в безопасности (просто создайте своего пользователя в своей ОС - presto).
Все остальные стратегии, о которых я могу подумать, бесполезны:
Хранение паролей в файлах в учетной записи Solaris не годится, так как персонал службы поддержки может их видеть и использовать для подключения через sqlplus;
Шифрование файла было бы бесполезным - серверный процесс должен был бы иметь доступ к закрытому ключу, который затем был бы доступен персоналу поддержки, который затем мог бы расшифровать, и мы вернемся к шагу 1.
Я думал о создании триггера входа в систему, который проверяет, подключаемся ли мы как servuser, а затем вызываю исключение, если значения модуля / программы в v $ session не совпадают с тем, что мы определили как действительные клиенты. Это слабая защита, поскольку кто-то может написать свое собственное приложение, которое подделает эти значения.
Каков «официальный» способ обработки этого сценария? Аутентификация ОС работает надежно только в том случае, если вы запускаете свой клиент на той же машине, где находится ваш экземпляр, что кажется довольно бесполезным, IMO. Тем не менее, я думаю, что наш сценарий довольно распространен - серверы приложений работают на отдельном экземпляре, но вы хотите убедиться, что только они могут использовать привилегированную учетную запись.
Предложения