:: Не фоксом единым
sys.sysprocesses MSSQL
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Когда работаю с нормальными правами, могу по sys.sysprocesses по spid вычислить кто отвалился, кто живой.
Но когда БД у провайдера, sys.sysprocesses показывает только собственную запись.

А вот как бы попробовать поймать отвал. Что юзера уже нет?
spid знаю, время входа знаю.
У меня есть монитор, куда при обычном выходе он пишет что вышел.
Но при сбое висит.

При полных правах такой запрос работает
SELECT u.txt, m.hostname, m.login_time, m.ver,m.app
FROM dbo.monitor AS m INNER JOIN
dbo.Users AS u ON m.ID_USER = u.ID_USER
INNER JOIN
sys.sysprocesses AS syspr ON m.spid = syspr.spid
AND m.login_time = syspr.login_time
WHERE (m.exit_time IS NULL)
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Аспид
Если пользователь имеет разрешение VIEW SERVER STATE на сервере, он увидит все выполняющиеся сеансы на экземпляре SQL Server. В противном случае пользователь увидит только текущий сеанс.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 01.10.19 16:44
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
Аспид
Если пользователь имеет разрешение VIEW SERVER STATE на сервере, он увидит все выполняющиеся сеансы на экземпляре SQL Server. В противном случае пользователь увидит только текущий сеанс.
Ну это то ясно)))
У меня нет таких прав. И назначить их не могу себе. (а это только для меня (ну или админ), смотрю кто из под чего в настоящий момент в БД)
Возникла мысль, в какой нибудь расшареной папке, что то создавать, и лочить из ПО. Ну и админу проверять, что незалочено.

Увы. 50% ПО работает не в локалке(

Может как то свой аналог sysprocesses ?
создать табл. А в ней запись от юзера залочена, пока он есть.
А вот можно ли так?
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Аспид
Может как то свой аналог sysprocesses ?
создать табл. А в ней запись от юзера залочена, пока он есть.
А вот можно ли так?

sp_getapplock - это просто флаг, который не повлияет на модификацию данных из другого АПИ.

Либо создать второе соединение, начать транзакцию, лочить в ней какую-то запись Х-блокировкой, а затем читать эту блокировку, при отвале сеанса транзакция будет откачена.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
Либо создать второе соединение, начать транзакцию, лочить в ней какую-то запись Х-блокировкой, а затем читать эту блокировку, при отвале сеанса транзакция будет откачена.
Не очень понял зачем еще одно соединение?
Но это легко.
Но куча открытых вечно транзакций... как то напрягает)

Наверное и нет элегантного решения.

зы. spid знаю)



Исправлено 1 раз(а). Последнее : Аспид, 02.10.19 10:25
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
PaulWist

Сообщений: 14601
Дата регистрации: 01.04.2004
Аспид
PaulWist
Либо создать второе соединение, начать транзакцию, лочить в ней какую-то запись Х-блокировкой, а затем читать эту блокировку, при отвале сеанса транзакция будет откачена.
Не очень понял зачем еще одно соединение?
Но это легко.
Но куча открытых вечно транзакций... как то напрягает)

Наверное и нет элегантного решения.

зы. spid знаю)

Ну открыл ты транзакцию для аудита, как будешь в этом соединении другие транзакции коммитить?

Теоретически вызов sysprocesses можно завернуть в ХП и дёргать эту ХП, только у владельца этой ХП должны быть права на все записи таблицы, замкнутый круг.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Понял зачем второе соединение.
Все равно не нравится(
Задача то, не кому, кроме меня не нужна.
Да и у меня, больше из любопытства.

В общем то и так все фиксирую.
Вплоть до запуска любой сущности (набора классов)
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Аспид
Когда работаю с нормальными правами, могу по sys.sysprocesses по spid вычислить кто отвалился, кто живой.
А зачем? Какая прикладная цель может этим решаться?
Административные функции тащить в пользовательское приложение - не самая лучшая идея...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: sys.sysprocesses MSSQL
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Igor Korolyov
А зачем? Какая прикладная цель может этим решаться?
Да чистое любопытство)))
Иногда хочется посмотреть кто в онлайне в ПО.
Да ясен пень, обойдусь.

По факту, накатываю обновление, и смотрю, кто обновился, кто нет.
А то шлют претензию, устраняю, а они мне, "все по старому"
Я смотрю, а у них версия старая)))

Никакой супер надобности нет, что бы бороться за нее)

В общем и без sysprocesses получаю нужное мне.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 14 (Гостей: 14)

© 2000-2024 Fox Club 
Яндекс.Метрика