уведомление, когда изменение происходит в базе данных оракула - PullRequest
2 голосов
/ 04 ноября 2008

У нас есть база данных, к которой многие люди должны иметь доступ. Я ищу способ, который позволит нам получать уведомления всякий раз, когда «изменение» происходит в этой базе данных, чтобы другие стороны могли знать об этом. Пожалуйста, сообщите.

Ответы [ 5 ]

5 голосов
/ 04 ноября 2008

Вы можете создавать TRIGGER для перехвата нескольких событий в базе данных ...

http://www.psoug.org/reference/ddl_trigger.html

... включая до / после изменения ALTER в схеме.

4 голосов
/ 04 ноября 2008

У многих людей НЕ должно быть разрешения ALTER для рабочей базы данных - очень немногие люди должны иметь разрешение ALTER для рабочей базы данных. На самом деле, вам, вероятно, не нужно много людей, уполномоченных вносить изменения в тестовые базы данных.

Вы можете рассмотреть вопрос о том, является ли аудит правильным решением - в некоторых СУБД это может быть одним из способов обнаружения изменений, но оповещение будет сложнее (за исключением некоторых изменений в теме «просмотра журнала аудита»). В Oracle могут быть и другие способы.

2 голосов
/ 05 ноября 2008

По поводу вашего комментария выше:

Это база данных разработки, поэтому нам нужно многие люди, чтобы получить доступ к нему. - whizmaven (8 часов назад)

@ Джонатан Леффлер исправляет: Многие люди могут иметь к нему доступ, но группа людей с правами DDL (CREATE, DROP, ALTER и т. Д.) Должна быть очень ограниченной.

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

Как минимум, при таком развертывании следует использовать уведомление по электронной почте об изменениях и последствиях этих изменений (требуется новое тестирование, обновления и т. Д.).

1 голос
/ 05 ноября 2008
0 голосов
/ 05 ноября 2008

ALTER что?

ALTER SESSION может быть очень распространенной командой (особенно ALTER SESSION SET NLS_DATE_FORMAT или CURRENT_SCHEMA).

Чаще всего вам нужно отслеживать ALTER schema_object, возможно ALTER SYSTEM и ALTER DATABASE

...