powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Аудит входа и выходп пользователя из БД
17 сообщений из 17, страница 1 из 1
Аудит входа и выходп пользователя из БД
    #39428909
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставлена задача, сформировать табличку или запрос, который покажет следующие данные
в виде таблицы

OSuser schemas terminal programm logon_time exit_time "а тут столбец в котором указана причина когда пользователь не зашел в базу"

Аудит вкл нельзя - есть адекватные причины.

Кто какие варианты по советует для достижение цели?

PS: идея в том что бы мониторить кто во сколька зашел и когда вышел и какие ПО использовал. И в случае отказа БД принять конект от пользователя - регистрация в таблице
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39428912
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014И в случае отказа БД принять конект от пользователя - регистрация в таблицеБред.
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39428952
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicБред.
Каждый сходит с ума по своему :) ...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
-- показана только "голова" триггера
CREATE OR REPLACE TRIGGER SMZ_TRIGGER_ON_LOGON after logon on database
declare
  l_conn_info   smz_log_connection%rowtype;
  registered    number(1);
  fio_osuser    w_user_info.fio%type;
  fio_orauser   w_user_info.fio%type;
  l_db_name     varchar2(50);
  procedure SaveToForbiddenLog (p_note_info in smz_log_forbidden.note%type)
  is
    pragma autonomous_transaction;
  begin
    insert into SMZ_Log_Forbidden
      (USERNAME, TIME_LOGIN, TERMINAL, OSUSER, PROG_SHORT, AUDSID, NOTE)
      values (l_conn_info.USERNAME, l_conn_info.TIME_LOGIN, l_conn_info.TERMINAL,
              l_conn_info.OSUSER, l_conn_info.PROG_SHORT, l_conn_info.AUDSID, p_note_info);
    commit;
  end;
  procedure ForbidConnection (p_note_info in smz_log_forbidden.note%type)
  is
    l_rus varchar2(500);
    l_eng varchar2(500);
  begin
    SaveToForbiddenLog(p_note_info);
    case p_note_info
      when 'not developer login' then
        l_rus := 'Соединение запрещено, так как вы не являетесь разработчиком программ для этой базы данных.';
        l_eng := 'Connection is forbidden because you are not a software developer of this database.';
      when 'connect from test env' then
        l_rus := 'Работа в промышленной базе данных из тестовой среды запрещена.';
        l_eng := 'Connection from test environment to production database is forbidden.';
      when 'forbidden application' then
        l_rus := 'Работа в данной программе запрещена для пользователей приложений.';
        l_eng := 'Work of given program is forbidden for application users.';
      when 'OS-ORA non-compliance login' then
        l_rus := chr(13) || chr(10) ||
                 fio_osuser || '.' || chr(13) || chr(10) ||
                 'Вами совершена попытка доступа в приложение под именем пользователя ' ||
                 fio_orauser || '.' || chr(13) || chr(10) ||
                 'Данное действие является нарушением политики использования учетных записей.' ||
                 chr(13) || chr(10) ||
                 'Пожалуйста, используйте свою учётную запись для входа в приложение.' ||
                 chr(13) || chr(10) ||
                 'Если у вас возникли какие-либо вопросы, обращайтесь в службу поддержки пользователей.';
    end case;
    raise_application_error(-20101, 'Database ' || upper(sys_context('userenv', 'db_name')) ||
                                    chr(13) || chr(10) || l_rus ||
                                    case when l_eng is not null then
                                      chr(13) || chr(10) || chr(13) || chr(10) || l_eng
                                    end);
  end;
--........ и дальше ещё 100 с небольшим строк кода ...

.
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39429612
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicSAS2014И в случае отказа БД принять конект от пользователя - регистрация в таблицеБред.

ага бред еще тот
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39429721
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с этим разобрался, но тут ситуация такая на тестовой БД.
как известно при аудите все данные записываются в aud$
и еще в пару таблиц.

хочу выполнить truncate table aud$ от имени sysdba
и получаю ответ , что такой таблицы или представления нет
ок ищу табблицу в ручную - оказывается ее нет, НО как при выполнение запроса дает результаты select * from aud$

лан вопрос в другом КАК эту невидимую таблицу очистить от записей????
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39429779
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SAS2014с этим разобрался, но тут ситуация такая на тестовой БД.
как известно при аудите все данные записываются в aud$
и еще в пару таблиц.

хочу выполнить truncate table aud$ от имени sysdba
и получаю ответ , что такой таблицы или представления нет
ок ищу табблицу в ручную - оказывается ее нет, НО как при выполнение запроса дает результаты select * from aud$

лан вопрос в другом КАК эту невидимую таблицу очистить от записей????

покажи вывод

show user
truncate table aud$;

ну и версию, платформу БД по правилам хорошего тона называют, если хотят, чтобы по правилам хорошего тона ответили
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39430376
Авдруг?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
truncate table SYS.aud$ тоже не работает?
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39430633
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014ищу табблицу в ручную - оказывается ее нет
Код: plsql
1.
2.
3.
select owner, table_name
from dba_tables
where table_name = 'AUD$'


?
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431746
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извините, что ответил не сразу, просто выходные все такое))))

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Присоединен к:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show user;
USER имеет значение "SYS"
SQL> truncate table aud$;
truncate table aud$
               *
ошибка в строке 1:
ORA-00942: таблица или представление пользователя не существует


SQL> truncate table sys.aud$;
truncate table sys.aud$
                   *
ошибка в строке 1:
ORA-00942: таблица или представление пользователя не существует



А вот результат выборки:
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431747
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Because Oracle Database Vault is enabled, the AUD$ system table resides in the SYSTEM schema. The synonym SYS.AUD$ is created to refer to the SYSTEM.AUD$ table. (Oracle strongly recommends that you do not disable Oracle Database Vault.)

Балбес
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431748
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SAS2014,

Параметр audit_trail покажи. И почему транкейт захотелось?
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431749
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вячеслав Любомудров,

Ааа... Ясно
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431773
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderSAS2014,

Параметр audit_trail покажи. И почему транкейт захотелось?

табл нажну транкнуть))) для тестов и более 1 000 000 строк они будут мешать новым данным
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431785
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
system эта табличка была..... и удачно трунканулась))
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431786
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос решен всем спс .. особое спс тому кто навел меня балбеса на system
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39431806
veep_in_office
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SAS2014
хочу выполнить truncate table aud$ от имени sysdba
и получаю ответ , что такой таблицы или представления нет
ок ищу табблицу в ручную - оказывается ее нет, НО как при выполнение запроса дает результаты select * from aud$



Для чистки audit trail Oracle рекомендует использовать пакет DBMS_AUDIT_MGMT


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure clear_audit_trails as
begin
 

   if not sys.DBMS_AUDIT_MGMT.IS_CLEANUP_INITIALIZED(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) then
        sys.DBMS_AUDIT_MGMT.INIT_CLEANUP(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,default_cleanup_interval=>24);
   end if;
     sys.DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
    audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    last_archive_time=>TO_TIMESTAMP(sysdate-3)
    );
    sys.DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD);
 
end;
...
Рейтинг: 0 / 0
Аудит входа и выходп пользователя из БД
    #39432456
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
veep_in_officeSAS2014хочу выполнить truncate table aud$ от имени sysdba
и получаю ответ , что такой таблицы или представления нет
ок ищу табблицу в ручную - оказывается ее нет, НО как при выполнение запроса дает результаты select * from aud$



Для чистки audit trail Oracle рекомендует использовать пакет DBMS_AUDIT_MGMT


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure clear_audit_trails as
begin
 

   if not sys.DBMS_AUDIT_MGMT.IS_CLEANUP_INITIALIZED(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) then
        sys.DBMS_AUDIT_MGMT.INIT_CLEANUP(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,default_cleanup_interval=>24);
   end if;
     sys.DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
    audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    last_archive_time=>TO_TIMESTAMP(sysdate-3)
    );
    sys.DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type=>sys.DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD);
 
end;



буду знать, думаю пригодится
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Аудит входа и выходп пользователя из БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]