Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Тригер на select


Автор: ShurikA 30.4.2008, 09:41
Возножно ли повесить тригер для select-a? На сколько мне известно, нет.
Какие есть варианты на эту тему?

Автор: Itsys 30.4.2008, 09:45
Не скромный вопрос: а зачем? smile 

Автор: ShurikA 30.4.2008, 09:57
Мониторить просмотры профиля. Кто смотрел кого, когда.
Security...

Автор: Magnifico 30.4.2008, 12:22
запрос на просмотр профиля может быть:

Код

select profile from Table where nickname = @Vasya

загнать её в процедуру и в ней уже определять кто запустил  suser_sname() , когда getdate() , счетчик повесить
и разрешать просматривать только через процедуру, а не прямым запросом

а болле сложный вариант трассировка   sp_trace_create,
есть еще триггер входа можно в БОЛ посмотреть

Автор: ShurikA 30.4.2008, 21:47
Цитата(Magnifico @  30.4.2008,  11:22 Найти цитируемый пост)
есть еще триггер входа можно в БОЛ посмотреть 

Я не совсем понял о чём ты...

Автор: skyboy 30.4.2008, 22:52
Цитата(Magnifico @  30.4.2008,  11:22 Найти цитируемый пост)
БОЛ 

Цитата(ShurikA @  30.4.2008,  20:47 Найти цитируемый пост)
Я не совсем понял о чём ты... 

Book OnLine - мануал по SQL Server'у.
Цитата(Magnifico @  30.4.2008,  11:22 Найти цитируемый пост)
загнать её в процедуру и в ней уже определять кто запустил  suser_sname() , когда getdate() , счетчик повесить

точно. а если пойти ещё дальше и вспомнить, что навряд ли у нас "просмотры профиля" происходят через Query Analyzer, то можно прикрепить "контроль доступа" в клиентском приложении на "клиентском" языке программирования

Автор: ShurikA 1.5.2008, 08:28
Цитата(skyboy @  30.4.2008,  21:52 Найти цитируемый пост)
то можно прикрепить "контроль доступа" в клиентском приложении на "клиентском" языке программирования

вот именно этого и хотелись бы избежать (есть на то причины...)

Автор: skyboy 1.5.2008, 11:54
идея: работать не с таблицей, а с view, которое будет представлять собой select. а в этом select'e кроме нужных полей будет вызов http://msdn.microsoft.com/en-us/library/ms187440.aspx#ctl00_rs1_mainContentContainer_cpe46211_c функции, которая ничего не будет делать, кроме фиксирования доступа. правда, та самая "недетерменезированность", которая "заставит" view(и составляющий его select) вычисляться заново при каждом вызове, не даст закешировать результат выполнения. потому работа с этой таблицей должна будет проходить намного медленнее "обычного варианта". чесно говоря, не знаю, получится ли подоюное реализовть. у меня в таком нужды на было. если получится, то достоинство будет только в том, что функционал - полностью на стороне сервера будет реализован: для клиента будет "прозрачен" доступ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)