Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Login в transaction log MS SQL 2008  [new]
Лукьчнчук Анатолий
Member

Откуда: Москва
Сообщений: 68
Добрый день!
Правильно ли я понимаю, что в transaction log MS SQL 2008 в конфигурации по умолчанию не вписывается логин/учетная зпапись пользователей, которые изменили (добавили/удалили) записи в таблицах БД?
24 янв 13, 11:04    [13820075]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Лукьчнчук Анатолий,

Правильно понимаете. Более того, не только "в конфигурации по умолчанию", но и в любой другой конфигурации. Transaction log совсем не для этого предназначен.
24 янв 13, 11:26    [13820244]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5252
Гость333
Лукьчнчук Анатолий,

Правильно понимаете. Более того, не только "в конфигурации по умолчанию", но и в любой другой конфигурации. Transaction log совсем не для этого предназначен.

но там есть spid-ы
и, при наличии среза сессий на нужный период времени, можно узнать кто это сделал
24 янв 13, 11:32    [13820303]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
komrad
Гость333
Лукьчнчук Анатолий,

Правильно понимаете. Более того, не только "в конфигурации по умолчанию", но и в любой другой конфигурации. Transaction log совсем не для этого предназначен.

но там есть spid-ы
и, при наличии среза сессий на нужный период времени, можно узнать кто это сделал
А это ничего, что за время между двумя соседними "срезами сессий" пользователь, закрепленный за spid, может поменяться несколько раз?

И не забываем, что ОЧЕНЬ многие программные системы используют подключение к БД через "общий" логин, когда забота о проверке пользователей и их прав перекладывается на приложение (сервере приложений, etc).
24 янв 13, 12:38    [13820788]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Лукьчнчук Анатолий
Member

Откуда: Москва
Сообщений: 68
sphinx_mv
komrad
пропущено...

но там есть spid-ы
и, при наличии среза сессий на нужный период времени, можно узнать кто это сделал
А это ничего, что за время между двумя соседними "срезами сессий" пользователь, закрепленный за spid, может поменяться несколько раз?

И не забываем, что ОЧЕНЬ многие программные системы используют подключение к БД через "общий" логин, когда забота о проверке пользователей и их прав перекладывается на приложение (сервере приложений, etc).

Если не сложно приведите примеры каким образом пользователь, закрепленный за spid, может поменяться? Или под срезами сессий вы подразумеваете запись сессий периодически, например по расписанию? И если вести аудит подключений к MS SQL то пользователь незаметно уже не поменяется?
24 янв 13, 12:51    [13820896]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Лукьчнчук Анатолий
И если вести аудит подключений к MS SQL то пользователь незаметно уже не поменяется?

Ну вообще да. Но какая-то очень уж сложная схема получается. Традиционно логирование действий, если оно нужно, встраивают в логику приложения.
24 янв 13, 13:07    [13821047]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Лукьчнчук Анатолий
Если не сложно приведите примеры каким образом пользователь, закрепленный за spid, может поменяться?
Логон/логофф... Достаточно? :)
24 янв 13, 13:14    [13821124]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5252
Гость333
Лукьчнчук Анатолий
И если вести аудит подключений к MS SQL то пользователь незаметно уже не поменяется?

Ну вообще да. Но какая-то очень уж сложная схема получается. Традиционно логирование действий, если оно нужно, встраивают в логику приложения.

да в общем не очень то и сложная - добавить логин-триггер и таблицу для хранения
правда на некоторых системах с большим logons/second это решение не подойдет

пример триггера:



use DB
go
create table dbo.track_logins (i int identity, dt datetime, spid int null, [login] varchar(50), host varchar(100) null, app varchar(100) null)
go

use master 
go
create trigger [track_logins]
on all server
with execute as 'sa'
for logon
as
BEGIN
declare @eventdata xml
set @eventdata = EventData()

	insert 
	into DB.dbo.track_logins(dt,spid,[login],host,app)
	values
		(GETDATE(),
		@eventdata.value('(/EVENT_INSTANCE/SPID)[1]', 'int'),
		@eventdata.value('(/EVENT_INSTANCE/LoginName)[1]', 'sysname'),
		@eventdata.value('(/EVENT_INSTANCE/ClientHost)[1]', 'sysname'),     
		App_Name())
	
END	
go

/*
DISABLE TRIGGER [track_logins] ON ALL SERVER
GO
ENABLE TRIGGER [track_logins] ON ALL SERVER
GO
*/
24 янв 13, 13:57    [13821433]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Гость333
Member

Откуда:
Сообщений: 3683
komrad
да в общем не очень то и сложная - добавить логин-триггер и таблицу для хранения

Логировать подключения пользователей — не проблема. Я имел в виду, что сложно работать с transaction log для извлечения информации, какой пользователь где нагадил. Хотя, получается, что возможно при наличии информации по logon'ам.
24 янв 13, 14:04    [13821500]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Лукьчнчук Анатолий
Member

Откуда: Москва
Сообщений: 68
Спасибо. Очень помогли разобраться. Теперь всё вижу.
24 янв 13, 16:24    [13822708]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а зачем самостоятельно писать логины в таблицу, если это может делать стандартный сервер-аудит?
24 янв 13, 16:46    [13822855]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
komrad
Member

Откуда:
Сообщений: 5252
Crimean
а зачем самостоятельно писать логины в таблицу, если это может делать стандартный сервер-аудит?

можно и аудитом, конечно

функция для чтения аудит-файлов: sys.fn_get_audit_file
24 янв 13, 17:29    [13823101]     Ответить | Цитировать Сообщить модератору
 Re: Login в transaction log MS SQL 2008  [new]
Лукьчнчук Анатолий
Member

Откуда: Москва
Сообщений: 68
Crimean
а зачем самостоятельно писать логины в таблицу, если это может делать стандартный сервер-аудит?


BOL:
автор
Начиная с версии SQL Server 2008 Enterprise можно также настроить автоматический аудит с помощью подсистемы аудита SQL Server.

Взято из:
[url=]http://technet.microsoft.com/ru-ru/library/cc280386(v=sql.100).aspx[/url]

у меня:
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
20 июн 13, 11:31    [14458603]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить