-
Одну старенькую программку перевели с базы SQL-2000 на SQL-2008, и тут возникла небольшая, но досадная трудность.
Особенность программы такова, что нельзя допустить коннекта к серверу с её помощью одного логина два раза. То есть, если зашел под своим логином один раз, то пока не выйдешь из программы второй раз она под этим логином не соединится.
Ранее это делалось так: select count(*) from master.dbo.sysprocesses where sid = suser_sid() теперь такая хрень катит только под sa, потому что для остальных логинов видно только их процесс, то есть, запрос всегда возвращает 1, сколько бы раз юзер не законнектился.
Вопрос знатокам: как в сервере 2008 сделать аналогичную проверку.
-
на старом сервере это прокатывало потому что кто-то когда-то дал грант на селект из этой вьюхи паблику. потом забыл про это. и теперь кажется, что на 2000 это работало с самого начала.
-
не хочется давать грант - создай sp и дай грант на нее. и вызывать с правами владельца, а не вызывающего
-
Так там и так право на выборку есть у public
В хелпе написано такое: Если пользователь имеет разрешение VIEW SERVER STATE на сервере, он увидит все выполняющиеся сеансы на экземпляре SQL Server. В противном случае пользователь увидит только текущий сеанс.
Вот как это разрешние дать? хотя бы примерный формат команды?
-
-
Спасибо. Зафункциклировало.
|