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

Откуда:
Сообщений: 114
truncate table logjor
if exists(select 1 from sys.tables where name = ' logjor') drop table logjor
create table logjor
(id int identity, PostTime datetime, ServerName sysname, LoginName sysname, EventType sysname, SPID int, ClientHost sysname null, bon sysname null)
 
if exists(select 1 from sys.server_triggers where name = 'tr1') drop trigger tr1 on all server
go
create trigger tr1 on all server for logon as
if original_login() = 'sa' commit -- sa пускаем всегда
[src]if original_login() = 'test' rollback

declare @eventdata xml
set @eventdata = EventData()
insert master.dbo.logjor (PostTime, ServerName, LoginName, EventType, SPID, ClientHost, bon)
values (
@eventdata.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime'),
@eventdata.value('(/EVENT_INSTANCE/ServerName)[1]', 'sysname'),
@eventdata.value('(/EVENT_INSTANCE/LoginName)[1]', 'sysname'),
@eventdata.value('(/EVENT_INSTANCE/EventType)[1]', 'sysname'),
@eventdata.value('(/EVENT_INSTANCE/SPID)[1]', 'int'),
@eventdata.value('(/EVENT_INSTANCE/ClientHost)[1]', 'sysname'),
App_Name()
)
commit[/SRC]


как мне изменить строку
if original_login() = 'test' rollback

что бы ссо всех ip пускало, кроме одного конкретного
и наоборот
что б пускало только с одного, а с остальных - нет
16 май 12, 13:25    [12562713]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
https://www.sql.ru/forum/afsearch.aspx?s=%EE%EF%F0%E5%E4%E5%EB%E8%F2%FC+ip&submit=%CD%E0%E9%F2%E8&bid=1
16 май 12, 13:27    [12562724]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
и что? там приблизительно нет моего вопроса
спасибо, почитал
ещё есть предложения?
16 май 12, 13:49    [12562943]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alex5555555555
ещё есть предложения?

Настроить файерол. Именно он предназначен для таких задач
16 май 12, 13:53    [12562993]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
SQL Autentification
16 май 12, 13:55    [12563026]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
if original_login() = 'test' rollback

что бы ссо всех ip пускало, кроме одного конкретного
и наоборот
что б пускало только с одного, а с остальных - нет



это проблемно???
16 май 12, 14:05    [12563164]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Alex5555555555
и что? там приблизительно нет моего вопроса
Ой ли? "определить ip" - это к вашему вопросу не имеет отношения, да? Вы уже знаете, как его определить? Ну тогда извините, не имеет отношения.
16 май 12, 14:07    [12563182]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
у меня есть 2а IP для пользователя тест,
мне нужно одному запретить, а второму разрешить
всё
16 май 12, 14:10    [12563220]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alex5555555555
у меня есть 2а IP для пользователя тест,
мне нужно одному запретить, а второму разрешить
всё

MSSQL-ю не интересен IP
Тем более, что не всегда и доступен.
16 май 12, 14:11    [12563241]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Alex5555555555
у меня есть 2а IP для пользователя тест,
мне нужно одному запретить, а второму разрешить
всё
Да легко.

if original_login() = 'test' and @ip_который_я_уже_научился_определять_почитав_поиск != 'IP.с.которого.подключаться.можно' 
rollback
16 май 12, 14:38    [12563449]     Ответить | Цитировать Сообщить модератору
 Re: if в триггере  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
Гавриленко Сергей Алексеевич

из поля client_net_address представления sys.dm_exec_connections.


там просто ip, уточните плиз синтаксис
if original_login() = 'test' and @ip 10.10.1.10 != '10.10.1.10' 
rollback


так не катит
я понимаю что глупости спрашиваю, но я учусь!
16 май 12, 15:20    [12563719]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить