2015-08-31 3 views
1

Я работаю в настоящее время на сценарии извлечения DDL и задался вопросом, как получить время создания и последнее время DDL для некоторых объектов, не являющихся объектами схемы, специально для ролей и профилей. Для объектов схемы я могу запросить представление словаря данных «DBA_OBJECTS» и использовать столбцы «CREATED» и «LAST_DDL_TIME». Любая помощь будет оценена по достоинству.Как получить время создания и последнее время DDL для объектов роли и профиля в Oracle DB?

ответ

1

То, что вы ищете, может быть достигнуто с использованием таблиц аудита аудита в Oracle, таких как SYS.AUD$ или dba_audit_trail (если контрольный журнал включен).

Чтобы получить последний DDL т.е. ALTER USER... для пользователя БД вы можете использовать что-то вроде this-

select a.* from sys.aud$ a, dba_users b 
where a.action# = 43 --corresponds to ALTER USER 
and a.OBJ$NAME = b.username; 

Чтобы получить, когда пользователь был created-

select a.* from sys.aud$ a, dba_users b 
where a.action# = 51 --corresponds to CREATE USER 
and a.OBJ$NAME = b.username; 

dba_audit_trail более понятны. Запрос, как показано ниже даст вам целую кучу информации, в том числе, кто выполнил действие, метку времени, имя хоста и т.д.

--For DB users 
select * From dba_audit_trail 
where action_name like '%ALTER USER%' 
    or action_name like '%CREATE USER%';` 

--For DB Profiles 
select * From dba_audit_trail 
where action_name like '%ALTER PROFILE%' 
    or action_name like '%CREATE PROFILE%';` 

Этот запрос может быть изменен, чтобы присоединиться к dba_users для пользователей БД и dba_profiles для профилей DB , с столбцом obj_name в таблице аудита. Но будьте осторожны с тем временем, которое может потребоваться для запуска запроса в зависимости от размера вашей базы данных, количества пользователей и количества профилей db.

+0

Дополнительную информацию об активации аудита вы должны указать, что каждый пользователь, который будет проверяться, и все действия, которые будут проверяться для этих пользователей (например, опция PROFILE, чтобы получить действия ALTER PROFILE, CREATE PROFILE и ПРОФИЛЬ ПРОСМОТРА). Аудит можно включить с помощью инструкции AUDIT и отключить с помощью инструкции NOAUDIT. Примечание. Пользователь SYS не может быть проверен так же, как и другие пользователи, и это приведет к тому, что «ORA-00983: не может проверять или не выполнять действия пользователя SYS пользователя», – ivanzg