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

Откуда:
Сообщений: 63
Вопрос такой, можно ли на уровне процедуры узнать из какого приложения она была вызвана?
Просто к базе цепляется несколько клиентов, один из них устаревший, и требуется части процедур запретить исполняться из под этого клиента. Проблема в том что клиент этот закрытый, мы написали свой. Но юзеров много, и кто-то может пытаться работать из старого.
Соответственно вопрос есть ли хранимка типа SUSER_SNAME(), чтобы опознать приложение из под которого дернули процедуру.
13 окт 14, 12:27    [16696012]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
_djХомяГ
Guest
Application role ?
13 окт 14, 12:31    [16696049]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Если приложение не сообщает имя при соединении - то никак.
13 окт 14, 12:31    [16696050]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
maldalik,

как вариант?
добавить поле (флаг) в процедуре, которое заполняется только в новой версии клиента, соответственно, если не заполнено - отказ
13 окт 14, 12:39    [16696108]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
Glory
Member

Откуда:
Сообщений: 104751
И зачем для " требуется части процедур запретить исполняться из под этого клиента" нужно знать имя приложения ?
Просто
- заберите права на запуска процедур
- поместите генерацию ошибки в начало процедур
- переименуйте процедуры
- удалите процедуры

и этот "кто-то может пытаться работать из старого." придет к вам сам
13 окт 14, 12:39    [16696109]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
maldalik
Member

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

Собственно так и делаем, но приходится лопатить кучу процедуру и веба что б добавить этот параметр.
13 окт 14, 12:57    [16696229]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
maldalik
Member

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

У кого права забрать? Юзер из разных приложений один и тот же.
Вот У аппликейшена и хочу забрать вопрос как?
13 окт 14, 12:58    [16696240]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
Glory
Member

Откуда:
Сообщений: 104751
maldalik
Юзер из разных приложений один и тот же.

Ну что вам сказать - крутая система
13 окт 14, 13:01    [16696253]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
sraider
Member

Откуда:
Сообщений: 325
Создайте нового юзера для доступа к БД. Старого удалите или отберите у него права. Новому клиенту назначьте вход под новым пользователем.
13 окт 14, 13:12    [16696344]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
maldalik
Member

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

Имеется ввиду не один юзер, юзеров много с разными правами.
Но в приложениях они не отличаются потому что делать разные логины для каждого приложения - юзера будут путаться 100%.
То что система не гениальна это понятно, но что есть то есть.
13 окт 14, 13:20    [16696385]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
sraider
Member

Откуда:
Сообщений: 325
найдите по профайлеру (или сами поймите) - какая из функций/view/хранимок вызывается раньше всех. добавьте в нее еще один аргумент. в своем приложении передавайте в этот агрумент что угодно. а на старую программу sql server будет ругаться "неправильное количество аргументов при вызове функции". таким образом старое приложение перестанет работать
13 окт 14, 13:32    [16696443]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
sraider
Member

Откуда:
Сообщений: 325
а, у вас конкретная процедура - вот в нее и добавьте обязательный параметр
13 окт 14, 13:40    [16696501]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Если есть доступ к строке соединения с сервером - то добавите/измените параметр "название приложения". Затем профайлером легко вычислить.
13 окт 14, 13:58    [16696659]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2000 узнать имя приложения  [new]
maldalik
Member

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

Я ж говорю в итоге так и делаем.
15 окт 14, 10:29    [16705910]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить