Как вы справляетесь с отсутствием привилегий уровня схемы в Oracle? Архитектура безопасности Oracle хорошо работает для приложений, которым требуются только привилегии уровня объекта, и хорошо работает для администраторов баз данных, которым нужно мало ограничений. Однако в архитектуре, похоже, есть большая дыра для программистов, занимающихся разработкой с использованием интерфейсного приложения и PL / SQL в нескольких схемах. Вот некоторые из моих вариантов с их недостатками:
Заставьте каждого программиста делать разработку в своей собственной схеме. Администратор баз данных предоставит привилегии уровня объекта программистам, которые в них нуждаются. Любая разработка пакета должна выполняться администратором базы данных. Основным недостатком является то, что программисты будут использовать базу данных как небольшой сегмент в ущерб производительности базы данных. Я хочу, чтобы программисты развивались в базе данных, но этот метод сильно обескуражил бы это.
Дайте каждому программисту имя пользователя / пароль для дюжины или около того схемы, в которой они нуждаются для разработки. Предоставьте разрешение этой схеме приложения для создания процедур, таблиц и т. Д. Некоторые недостатки этого подхода заключаются в том, что программистам приходится поддерживать несколько входов в систему и редко заходили как сами. Разработка кросс-схемы также сложна.
Предоставьте программистам права аутентификации через прокси-сервер для каждой схемы, для которой они должны разрабатывать. Это позволяет им входить в систему как от себя, без необходимости предоставлять им привилегии, отличные от прокси-привилегии. Недостатки включают программистов, которым приходится поддерживать отдельные соединения для каждой схемы, для которой они прокси-серверы, разработка перекрестных схем более обременительна, поскольку соединения должны постоянно меняться, а пакеты, использующие общедоступные ссылки на базы данных с прошедшей аутентификацию, не будут компилироваться в прокси-соединениях.
Дайте каждому программисту привилегии администратора БД. - Недостатком здесь является безопасность. Ни один программист не может быть исключен из любой схемы, и любой программист может выдать себя за любого другого программиста (DBA).
Кажется, отсутствует опция для предоставления каждому программисту SELECT / INSERT / CREATE / etc. привилегии для схемы, в которой они нуждаются для разработки. Они входят в систему сами, чтобы выполнить свою работу, используя одно соединение. Новые объекты в схеме, к которым они имеют доступ, сразу же становятся доступны.
Я что-то пропустил? Как вы относитесь к программистам приложений, которые занимаются разработкой PL / SQL?