Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
Можно ли каким-либо образом поймать момент подключения пользователя к SQL серверу (по аналогии с событийной моделью приложения). Без использования периодичного джоба?
Вообще каким образом происходит подключение, последовательность операций (действий) на серверной и клиентской сторонах?
9 фев 05, 09:00    [1309576]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Можно ли каким-либо образом поймать момент подключения пользователя к SQL серверу (по аналогии с событийной моделью приложения). Без использования периодичного джоба?


Нет.

автор
Вообще каким образом происходит подключение, последовательность операций (действий) на серверной и клиентской сторонах?


На сервере не генериться никаких событий, доступных разработчику, а вот на клиенте зависит от механизма доступа к данным, который Вы используете.
9 фев 05, 09:06    [1309585]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
pkarklin
Без использования периодичного джоба?
Нет.

А на системную таблицу повесить триггер? :)
Суть в том, чтобы отловить момент подключения к Серверу, определить клиента, и уже в зависимости от этого проводить те или иные действия.

pkarklin

автор
Вообще каким образом происходит подключение, последовательность операций (действий) на серверной и клиентской сторонах?

На сервере не генериться никаких событий, доступных разработчику, а вот на клиенте зависит от механизма доступа к данным, который Вы используете.

В данном случае меня интересует сам механизм "рукопожатия" клиента и сервера. Т.е. либо это делается на таком уровне, где обычному прикладнику делать нечего, либо разработчик может как-то влиять на этот процесс. Используется ADO
9 фев 05, 09:19    [1309598]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
А на системную таблицу повесить триггер? :)


Ну, во-первых таблица sysprocesses виртуальная и создается только при обращении к ней.
Во-вторых, триггера, даже успешно повешенные на системные таблицы, работать не будут.

автор
В данном случае меня интересует сам механизм "рукопожатия" клиента и сервера. Т.е. либо это делается на таком уровне, где обычному прикладнику делать нечего,


Что конретно Вы хотите сделать?
9 фев 05, 09:29    [1309618]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
pkarklin
Что конретно Вы хотите сделать?

Конкретно: хочу не допустить подключения к SQL любого клиента, отличного от разрешенного.
Стандартные средства аутинтификации накладывают некоторые пока непреодолимые ограничения на клиента, поэтому ищется альтернативное ограничение к SQL серверу, в частности описанное выше.
9 фев 05, 10:39    [1309856]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Есть SQL-аутентификация и windows-аутентификация. Вторая позволяет сделать очень широкий спектр настроек и ограничений, поскольку опирается на операционную систему. Раздачу прав как отдельным аккаунтам, так и группам пользователей (и сиквельным, и виндовым) в самом сиквеле также можно сделать достаточно гибко. Может, все-таки клиента подкрутить, а? Дешевле обойдется.
9 фев 05, 10:44    [1309882]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Конкретно: хочу не допустить подключения к SQL любого клиента, отличного от разрешенного.


Это общая фраза, не несущая никакой конкретики. И при любой модели аутенфикации не допускаются любые подключения, кроме разрешенных. Так что если Вы хотите получить более конкретные рекомендации, то во про это

автор
некоторые пока непреодолимые ограничения на клиента


стоит рассказать более подробно.
9 фев 05, 10:48    [1309909]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Конкретно: хочу не допустить подключения к SQL любого клиента, отличного от разрешенного
Application Role ???
9 фев 05, 10:50    [1309919]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
Glory
Конкретно: хочу не допустить подключения к SQL любого клиента, отличного от разрешенного
Application Role ???


Клиент - MS-Access XP Я думаю этим многое сказано :)
Невозможность Win Auth - на одной машине (в разные моменты времени) могут работать несколько пользователей (разные учетные записи). Соответственно необходимо каждый раз перелогиниваться в сети (приложение сетевое)
Касательно роли приложения - Аксесс плодит неконтролируемые подключения, без распространения роли приложения на них. Можно было бы роль накладывать на каждое подключение, если бы удалось контролировать их размножение :)

Есть еще один вариант - переподключение (перерегистрация пользователя). Но тут проблема самого клиента - он закрыт по записи (атрибут файловой системы ReadOnly). При таком раскладе метод OpenConnection не проходит (хотя если попробывать делать реконнект через меню, то аксесс свободно переподключается)
В форуме Аксесса спрашивал - решений не нашлось, - ищу окольные пути - в часности хочу попытаться управлять соединением на серверной стороне.
9 фев 05, 11:07    [1309977]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Невозможность Win Auth - на одной машине (в разные моменты времени) могут работать несколько пользователей (разные учетные записи). Соответственно необходимо каждый раз перелогиниваться в сети (приложение сетевое)


Невозможно решить организационные проблемы программными методами. Все-равно Вам ничего не придумать на предмет смены морды лица пользователя перед монитором и автоматической перерегистрации на сервере. А вот ввести аудит изменений, фиксирующий автора модификаций данных + издать приказик по организации, обязывающий выходить из системы пользователей закончивших свою работу в котором бы были еще и штрафные санкции самое оно.
9 фев 05, 11:13    [1309998]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Касательно роли приложения - Аксесс плодит неконтролируемые подключения,
Разве это не регулируется через connection pooling ?

Невозможность Win Auth - на одной машине (в разные моменты времени) могут работать несколько пользователей (разные учетные записи). Соответственно необходимо каждый раз перелогиниваться в сети (приложение сетевое)
Хм. Пользователей ломает перелониниватся ?
Ну ладно SQL а как вы узнаете кто конкретно с данной машины что-то сделал локально или в сети ?Раз у вас они все "на одно лицо"
9 фев 05, 11:14    [1310001]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
pkarklin

Невозможно решить организационные проблемы программными методами. Все-равно Вам ничего не придумать на предмет смены морды лица пользователя перед монитором и автоматической перерегистрации на сервере. А вот ввести аудит изменений, фиксирующий автора модификаций данных + издать приказик по организации, обязывающий выходить из системы пользователей закончивших свою работу в котором бы были еще и штрафные санкции самое оно.

Касательно приказика - перерегистрация на локале - есть задержка во времени, которая не допустима(точнее говоря допустима, но крааайне не желательна). Специфика предприятия однако!
Касательно аудита - все ведется, но делается это программным образом, как собственно и раздача слонов (прав).
To Glory:
Программное разделение пользователй (табличка с перечнем пользователей, авторизация и разграничение прав только на клиенете)
То бишь ограничения сейчас заключаются в ограничении функционала приложения, но ни как ни данных и объектов сервера, к сожалению (скажем это ты можешь, а этот пункт меню тебе не доступен). Т.е. маломальски продвинутый пользователь может поломать систему или фальсифицировать данные (при очень большой необходимости :) )
9 фев 05, 11:34    [1310065]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Касательно приказика - перерегистрация на локале - есть задержка во времени, которая не допустима(точнее говоря допустима, но крааайне не желательна). Специфика предприятия однако!


Что-ты Вы какие-то сказки рассказываете про специфику. По Вашим словам получается, то у Вас за одним компом стока народу работает, что все стоят в очереди и не дай бог стул будет не занят более чем 1 секунду.

автор
Т.е. маломальски продвинутый пользователь может поломать систему или фальсифицировать данные (при очень большой необходимости :) )


Вот. И Вы все больше хотите усложнить себе жизнь, пытаясь бороться со следствием, а не с причиной.
9 фев 05, 11:40    [1310097]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Glory
Member

Откуда:
Сообщений: 104760
To Glory:
Программное разделение пользователй (табличка с перечнем пользователей, авторизация и разграничение прав только на клиенете)
То бишь ограничения сейчас заключаются в ограничении функционала приложения, но ни как ни данных и объектов сервера, к сожалению (скажем это ты можешь, а этот пункт меню тебе не доступен). Т.е. маломальски продвинутый пользователь может поломать систему или фальсифицировать данные (при очень большой необходимости :) )

Вообще-то я имел ввиду что если кто-то просто грохнет какой-нибудь локальный/сетевой файл то как вы узнаете кто это был если у вас все пользователи с данной машины авторизованы под одной учетной записью ?
9 фев 05, 11:46    [1310122]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
pkarklin

Вот. И Вы все больше хотите усложнить себе жизнь, пытаясь бороться со следствием, а не с причиной.

Согласен, организационная проблема существует, и занимает не последнее место. Но не мне ее решать (правов таких нет).
По поводу стула и его занятости - мне кажется это не есть вопрос данной конференции :)
А вообще специфика такова, что действительно к стулу стоит очередь и из пользователей ПК и тех с кем эти пользователи работают. в связи с этим намного эффективнее выйти из приложения или осуществить перелогинивание в самом приложении, нежели целиком переавторизовываться на машине.
Есть правда еще одино направление "устранения следствий" - использование виндовой RunAs но и тут есть проблемки... не относящиеся к SQL
9 фев 05, 11:52    [1310135]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

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

Вообще-то я имел ввиду что если кто-то просто грохнет какой-нибудь локальный/сетевой файл то как вы узнаете кто это был если у вас все пользователи с данной машины авторизованы под одной учетной записью ?

Может быть мы говорим о разных вещах?!

Невозможность Win Auth - на одной машине (в разные моменты времени) могут работать несколько пользователей (разные учетные записи). Соответственно необходимо каждый раз перелогиниваться в сети (приложение сетевое)
Хм. Пользователей ломает перелониниватся ?
Ну ладно SQL а как вы узнаете кто конкретно с данной машины что-то сделал локально или в сети ?Раз у вас они все "на одно лицо"


Имеется в виду следующее: нет полноценного использования Win Auth при работе с SQL сервером. Грубо говоря :
1. логинятся на машинке - кто как может (под своими учетными записями)
2. Для SQL им всем назначена одна роль (с большииими привелегиями)
3. Ограничения реализуются на самом клиенте путем запрета/разрешения каких-либо действий (функционала самого клиента: открытие той или иной формочки, формирование того или иного отчета и т.д. Работа с данными вне этого интерфейса не ограничивается, т.е. запросто коннектимся QA и делаем что нам вздумается.)
9 фев 05, 13:13    [1310525]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
Кстати, а момент потери коннекта с приложением тоже не возможно отследить?
9 фев 05, 13:17    [1310551]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ну так надо отказатся от п.2 и назначить каждому sql login-у необходимые и достаточные права.
9 фев 05, 13:18    [1310555]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Имеется в виду следующее: нет полноценного использования Win Auth при работе с SQL сервером.


Вот и надо заняться ее полноценным использованием.

автор
2. Для SQL им всем назначена одна роль (с большииими привелегиями)


Плохо!

автор
3. Ограничения реализуются на самом клиенте путем запрета/разрешения каких-либо действий (функционала самого клиента: открытие той или иной формочки, формирование того или иного отчета и т.д. Работа с данными вне этого интерфейса не ограничивается, т.е. запросто коннектимся QA и делаем что нам вздумается.)


А вот это вот при переходе на полноценное использование аутенфикации (да и не обязательно виндовой, хотя с ней проще) стоит все эти ограничения перенести из клиентской части в серверную.
9 фев 05, 13:21    [1310573]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
Glory
Ну так надо отказатся от п.2 и назначить каждому sql login-у необходимые и достаточные права.

Гуд, но помимо сего прочего нужно еще перекрыть пользователю доступ к объектам сервера кроме как из разработанного интерфейса. При обычном использовании SQL-Аутинтификации этого не добиться, приходится извращаться с переподключениями (либо ролями приложения), но тут вступают в силу ограничения клиента, порочный круг похоже.
9 фев 05, 13:24    [1310600]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Гуд, но помимо сего прочего нужно еще перекрыть пользователю доступ к объектам сервера кроме как из разработанного интерфейса. При обычном использовании SQL-Аутинтификации этого не добиться,


А зачем его перекрывать?! Как раз доступ к объектам сервера с использованием собственной системы разграничения доступа сервера позволяет наплевать на то, из какого приложения подключаются к серверу.
9 фев 05, 13:35    [1310655]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
вобщем так: дальнейшее обсуждение базируется на неверной предпосылке, что виндовая аутентификация чем-то круче в плане гибкости: "... windows-аутентификация. Вторая позволяет сделать очень широкий спектр настроек и ограничений, поскольку опирается на операционную систему. Раздачу прав как отдельным аккаунтам, так и группам пользователей (и сиквельным, и виндовым) в самом сиквеле также можно сделать достаточно гибко..."

можно подумать, что сиквельных клиентов нельзя упихать в роли и рулить ими точно так же ...

второе и самое главное:
>Аксесс плодит неконтролируемые подключения, без распространения роли приложения на них<

попытайтесь почитать, разобраться и понять. прикол в том, что после назначения аппроли к примеру вы не видите таблицы в окне проекта, но формы их селектят, модифицируют и т.д.
т.е. то, что нужно и даже превосходно исполнено!

>В форуме Аксесса спрашивал - решений не нашлось,<
тогда им - фу ... хотя я не верю, что там нет людей, которые этого не знают ... дайте линк на обсуждение там
9 фев 05, 13:49    [1310706]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
iSestrin
можно подумать, что сиквельных клиентов нельзя упихать в роли и рулить ими точно так же ...


Можно подумать, что здесь кто-то утверждал обратное! Конечно, упихать можно, но можно и не плодить сиквельных логинов, а использовать логины виндовых групп и уже их распихивать, что, согласитесь, гараздо проще админить.
9 фев 05, 14:09    [1310743]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
я к тому, что самая верная и обычная в таких случаях рекомендация по применению аппроли была просто пропущена из-за неверных предпосылок и дальнейшего их обсуждения. а также полного доверия к утверждению , что аксес суксь и делает что-то неконтролируемое в плане подключений
9 фев 05, 14:24    [1310797]     Ответить | Цитировать Сообщить модератору
 Re: Момент Connect'a к SQL-серверу  [new]
Tema_a
Member

Откуда:
Сообщений: 35
iSestrin
я к тому, что самая верная и обычная в таких случаях рекомендация по применению аппроли была просто пропущена из-за неверных предпосылок и дальнейшего их обсуждения. а также полного доверия к утверждению , что аксес суксь и делает что-то неконтролируемое в плане подключений

Роль приложения - есть рулез :) но в случае акссеса он не подходит.
Пример:
Подключаюсь пользователем, у которого нет прав ни на что :)
Даю роль приложения, которой разрешено делать выборку из таблицы Tabl1
При попытке вызвать отчет, источником которого является выборка из этой таблицы получим кукишь. Т.к. при формировании отчета аксесс создает новое подключение, причем ранее назначеная роль не распространяется на это новое подключение. Если бы можно было как-то руководить этим "внеплановым зачатием" тогда все было бы хорошо. но увы....
про суксь - это лишь ваша интертрипация :), просто есть некоторые ограничения, которые не перекрывают гибкости аксесса :)
Вот ссылка: [url=http://]https://www.sql.ru/forum/actualthread.aspx?tid=155177[/url]
10 фев 05, 07:40    [1312251]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить