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

Откуда: оттуда
Сообщений: 360
В SQL 2005 имеется сервис брокер, с помощью которого можно осуществлять аудит сабжа. Однако в SQL 2000 его нет, и пришлось делать все через джобы с задействованием дополнительных таблиц. В 2005 сервис брокере также можно настроить указание логина, который добавлял другие в серверные роли. Однако, в 2000, копаясь в системных таблицах, я так и не понял, как отследить этот самый логин, который добавляет других. Т.е. мне нужна информация, кто кого и куда добавил, а сейчас имею только кого и куда. Можно ли как нибудь получить информацию по пункту "кто"?))) Т.е. ведет ли SQL 2000 запись в системных таблицах, кто создавал логин или изменял его?
16 янв 13, 14:38    [13778482]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Ёжик25
ведет ли SQL 2000 запись в системных таблицах, кто создавал логин или изменял его?

Так создавал логин или добавлял его в серверную роль?

Посмотрите исходный код процедуры sp_addsrvrolemember. Вроде ничего такого не сохраняется. Видимо, вам надо вести трассировку по событию Audit Add Login to Server Role Event.
16 янв 13, 16:04    [13779302]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Гость333,

Да, в исходном коде процедуры нет ничего...
И создавал логин и добавлял его в серверную группу

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

Короче понятно, жаль....
16 янв 13, 16:30    [13779558]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
komrad
Member

Откуда:
Сообщений: 5261
Ёжик25
Т.е. ведет ли SQL 2000 запись в системных таблицах, кто создавал логин или изменял его?

свой триггер повесить?
16 янв 13, 18:19    [13780432]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
Гость333
Member

Откуда:
Сообщений: 3683
komrad
Ёжик25
Т.е. ведет ли SQL 2000 запись в системных таблицах, кто создавал логин или изменял его?

свой триггер повесить?

Триггер куда?
use master
go
sp_configure 'allow updates', 1
go
reconfigure with override
go
create trigger x on sysxlogins after update
as print '1'
go

автор
Configuration option 'allow updates' changed from 0 to 1. Run the RECONFIGURE statement to install.
Msg 229, Level 14, State 5, Procedure x, Line 2
CREATE TRIGGER permission denied on object 'sysxlogins', database 'master', owner 'dbo'.
16 янв 13, 18:31    [13780505]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
komrad
Member

Откуда:
Сообщений: 5261
Гость333,

мда...

еще вариант: можно оттрейсить какой командой добавляется логин, и, если это sp_addlogin, внести в нее свои мысли
16 янв 13, 18:49    [13780590]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
komrad
Member

Откуда:
Сообщений: 5261
Гость333,

а можно еще попробовать добавить поле who в sysxlogins
примерно так:
alter table sysxlogins add who varchar(100) not null default suser_sname()


идея слегка безумная, но попробовать можно :)
16 янв 13, 19:13    [13780708]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
invm
Member

Откуда: Москва
Сообщений: 9407
Правильнее всего запретить кому попало создавать логины. ИМХО.
16 янв 13, 19:24    [13780750]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
devuser
Member

Откуда: Prague
Сообщений: 103
Для любителей странного и "безумных идей"...

Одни товарищи повесили триггеры на syscomments и sysobjects (не осилили svn/vss судя по всему)

Работало отлично года 3, пока не решили обновить до 2005:

No Catalog entry found for partition ID ...

Помочь сможет только полное пересоздание и перелив данных в новую "нормальную" БД.

MS прямо запрещает это делать


“System tables should not be altered directly by any user. For example, do not attempt to modify system tables with DELETE, UPDATE, or INSERT statements, or user-defined triggers. “
17 янв 13, 08:45    [13782271]     Ответить | Цитировать Сообщить модератору
 Re: Добавление логинов в серверные роли  [new]
komrad
Member

Откуда:
Сообщений: 5261
devuser
Для любителей странного и "безумных идей"...

“System tables should not be altered directly by any user. For example, do not attempt to modify system tables with DELETE, UPDATE, or INSERT statements, or user-defined triggers. “


да-да-да, конечно, Вы безусловно правы!
17 янв 13, 09:46    [13782527]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить