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

Откуда:
Сообщений: 11
Настраиваю аудит действий конкретного пользователя

есть тестовая база - test1, в ней простая таблица

CREATE TABLE tab1 (id int, mess varchar(10))


нужно отследить выборку данных из этой таблицы только скажем пользователем user1

итак... создаю объект аудита и объект спецификации аудита БД
USE master
GO
--===========================================================================================
--          О Б Ъ Е К Т   А У Д И Т А
--===========================================================================================
IF EXISTS (select 1 from sys.server_audits where name = 'SrvAudit_File') BEGIN
   ALTER SERVER AUDIT SrvAudit_File WITH (STATE=OFF)   
   DROP SERVER AUDIT SrvAudit_File
END

CREATE SERVER AUDIT SrvAudit_File TO FILE (FilePath = N'd:\Work\Audit')
ALTER SERVER AUDIT SrvAudit_File WITH (STATE=ON)   

--===========================================================================================
--          О Б Ъ Е К Т   С П Е Ц И Ф И К А Ц И Я   А У Д И Т А   Б Д
--===========================================================================================
USE test1
GO
if EXISTS (select 1 from sys.database_audit_specifications where name = 'SrvAuditSpec_File') BEGIN
   ALTER DATABASE AUDIT SPECIFICATION SrvAuditSpec_File WITH (STATE=OFF)
   DROP DATABASE AUDIT SPECIFICATION SrvAuditSpec_File;
END
CREATE DATABASE AUDIT SPECIFICATION SrvAuditSpec_File FOR SERVER AUDIT SrvAudit_File;

ALTER DATABASE AUDIT SPECIFICATION SrvAuditSpec_File ADD (SELECT ON dbo.tab1 BY user1)   

ALTER DATABASE AUDIT SPECIFICATION SrvAuditSpec_File WITH (STATE=ON)

делаем выборку
select * from test1..tab1

и ничего, запрос
SELECT *
  FROM fn_get_audit_file('d:\Work\Audit\*', null, null) 
 WHERE not (action_id = 'AUSC' AND class_type = 'A')  
 ORDER BY event_time DESC

не выдает ни одной строки
если при создании спецификации аудита вместо
ALTER DATABASE AUDIT SPECIFICATION SrvAuditSpec_File ADD (SELECT ON dbo.tab1 BY user1)

прописать
ALTER DATABASE AUDIT SPECIFICATION SrvAuditSpec_File ADD (SELECT ON dbo.tab1 BY dbo)

то всё конечно работает, но для всех пользователей, а нужен только один
в чем проблема?
25 сен 14, 14:10    [16621083]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
Glory
Member

Откуда:
Сообщений: 104751
magvik
в чем проблема?

В том, что ваш логин, отмапленный в user1, является dbo ?
25 сен 14, 14:17    [16621126]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
magvik
Member

Откуда:
Сообщений: 11
Glory,

вот код создания логина и пользователя БД

IF EXISTS (SELECT 1 FROM sys.server_principals WHERE name = N'user1' ) DROP LOGIN user1
CREATE LOGIN user1 WITH PASSWORD='123'
EXEC sys.sp_addsrvrolemember @loginame = user1, @rolename = N'sysadmin'
GO
USE test1
GO
IF  EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'user1') DROP USER user1
CREATE USER user1 FOR LOGIN user1 WITH DEFAULT_SCHEMA = dbo


что сделать чтобы аудит работал только по user1?
25 сен 14, 14:26    [16621190]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
Glory
Member

Откуда:
Сообщений: 104751
magvik
что сделать чтобы аудит работал только по user1?

Убрать у логина роль sysadmin
Потому что sysadmin-у получает все права на всех базах. И во всех базах является dbo, а не отмапленным туда пользователем.
25 сен 14, 14:31    [16621238]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
magvik
Member

Откуда:
Сообщений: 11
Glory,

да, на всякий случай
select @@version

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
25 сен 14, 14:35    [16621272]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
magvik
2008 R2 (RTM)

пропатчить бы надобно ..причем давненько
25 сен 14, 14:47    [16621366]     Ответить | Цитировать Сообщить модератору
 Re: Аудит по пользователю  [new]
magvik
Member

Откуда:
Сообщений: 11
Glory,

Вопрос решился, спасибо
25 сен 14, 14:47    [16621367]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить