Как работать со списком подключеных к базе пользователей?
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
а что позволяет делать эта привилегия? если я правильно понял - то она позволяет смотреть список всех процессов на сервере и .. и ВСЕ.
если так - что в ней страшного? собственно, мы же и хотим позволить всем юзерам смотреть, какие другие юзеры сейчас подключены. для этого есть специальная привилегия. значит надо ее использовать и все. если юзеров - небольшое количество, то можно даже вручную дать эти права..
но вроде есть еще какой то вариант, если не ошибаюсь, он описан вот здесь:
http://msdn.microsoft.com/en-us/library ... L.90).aspx
но тут про какие то подписи, сертификаты... ничего не понимаю...
если так - что в ней страшного? собственно, мы же и хотим позволить всем юзерам смотреть, какие другие юзеры сейчас подключены. для этого есть специальная привилегия. значит надо ее использовать и все. если юзеров - небольшое количество, то можно даже вручную дать эти права..
но вроде есть еще какой то вариант, если не ошибаюсь, он описан вот здесь:
http://msdn.microsoft.com/en-us/library ... L.90).aspx
но тут про какие то подписи, сертификаты... ничего не понимаю...
лучше день потерять, потом за пять минут долететь!
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: Как работать со списком подключеных к базе пользователей?
Не думаю, что под каждый майкрософтовский чих нужно скорее делать новую версию, его подтирающую. Не самая горящая потребность. Есть возможность это сделать напрямую - делаем. И то хорошо. Не очень удобно, но и не очень трудоемко. Результат-то будет один. Скажем так: пробежаться по юзерам в Лоции и проставить там признак установки права view server state вряд ли будет менее трудоемким, чем сделать это напрямую в сиквеле. Для создания новых юзеров такой флажок облегчит жизнь, но не более того - сколько, на минуточку, мы нынче создаем новых юзеров, например, за неделю?
"Лучше меньше, да лучше" (C)
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
... на sql.ru что-то читал по этому поводу страшное - и решил не делать
ладно расскажите по шагам для mssql2005 русский - куда зайти что установить - а то я ничего не понял вообще

ладно расскажите по шагам для mssql2005 русский - куда зайти что установить - а то я ничего не понял вообще

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?

я не помню точно (сейчас не могу посмотреть...), вроде нужно зайти а свойства логина, там где то должны быть привилегии этого логина. именно для логина, то есть не для юзера БД, так как эта привилегия (и некоторые другие) действует в масштабах сервера..
должна называться View Server State (или Просмотр состояния сервера)
у вас юзеров вроде не сильно много, много времени не должно уйти

лучше день потерять, потом за пять минут долететь!
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
Александр, ну как, что-нить получилось?
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
да нет - ничего не получилось.... слов View Server State (или Просмотр состояния сервера) стоя на сервере ->безопасность/имена входа/свойства имени входа/защищаемые объекты - я обнаружить не смог и поэтому задвинул это дело - хотя логичнее было бы довести до конца
инструкция пошаговая нужна в общем



Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
вау! - нашел - добавил на логин защищаемый объект - сервер - в нем флаг View Server State...
но все равно никто никого не видит - и флаг разрешения в свойствах по умолчанию не показывается - а если попробовать его установить снова то - он уже стоит гад такой - в общем ничего не понимаю
короче на логин стоят действующие разрешения
CONNECT SQL - это было
VIEW ANY DATABASE - это было
VIEW SERVER STATE - это добавил
но в колонке предоставить отмечены только
CONNECT SQL
VIEW SERVER STATE
а VIEW ANY DATABASE не отмечен - но разрешен и действует
чувствую зря полез я в это дело..................................................................................................................
ps
проверял на запросе select * from lsdbo.empldb_v
вычисляемое поле на форме Party все юзеры показывают только себя - остальных 'не видят' в принципе 
но все равно никто никого не видит - и флаг разрешения в свойствах по умолчанию не показывается - а если попробовать его установить снова то - он уже стоит гад такой - в общем ничего не понимаю
короче на логин стоят действующие разрешения
CONNECT SQL - это было
VIEW ANY DATABASE - это было
VIEW SERVER STATE - это добавил
но в колонке предоставить отмечены только
CONNECT SQL
VIEW SERVER STATE
а VIEW ANY DATABASE не отмечен - но разрешен и действует
чувствую зря полез я в это дело..................................................................................................................
ps
проверял на запросе select * from lsdbo.empldb_v
вычисляемое поле на форме Party
Код: Выделить всё
f_ExecSQLSelect_3 (' select case isconnected when 0 then ~'сотрудник находится вне информационного поля~' when 1 then ~'сотрудник присутствует в системе и готов к работе~' else ~'сотрудник доступен только по репликации БД~' end from lsdbo.EmplDB_v where user_id='+string(f_GetUserID( trim(left(usersric,len( usersric )-15) ) )) , '' , '' , '' , 0 )

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
хм..
что-то странное.. как-то замороченно вроде.. должно быть попроще.. скоро вернусь - посмотрю у себя..добавил на логин защищаемый объект - сервер - в нем флаг View Server State...
лучше день потерять, потом за пять минут долететь!
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
нашел!
в общем, так как это настройка в масштабах сервера, то она делается в окне свойств сервера
открываем Свойства, там должна быть "вкладка" слева Разрешения (Permissions), в ней - список логинов и ролей.
тыкаем логин - внизу в списке разрешений можно будет поставить нужную галочку
в английском это разрешение называется View Server State.
у нас по крайней мере именно в этом месте стоят галочки у юзеров, которые могут видеть статус других юзеров.
и при этом никаких защищаемых объектов в свойствах логина для этих юзеров нет.
в общем, так как это настройка в масштабах сервера, то она делается в окне свойств сервера

открываем Свойства, там должна быть "вкладка" слева Разрешения (Permissions), в ней - список логинов и ролей.
тыкаем логин - внизу в списке разрешений можно будет поставить нужную галочку
в английском это разрешение называется View Server State.
у нас по крайней мере именно в этом месте стоят галочки у юзеров, которые могут видеть статус других юзеров.
и при этом никаких защищаемых объектов в свойствах логина для этих юзеров нет.
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
в общем то тоже самое - вид сбоку
в свойствах сервера - разрешения - логин - уже стоят галочки проставленные напрямую от логина как выше.....
не работает нифига
под юзером в SQL Server Management Studio захожу - пишу запрос - select * from lsdbo.EmplDB_v и ..... тишина - он активен остальные нет, хотя галочка для него от sa стоит есть еще от него такая же галка на тот же статус от него лично... но это тоже не то - что-то - делаю не так а что - непонятно
в свойствах сервера - разрешения - логин - уже стоят галочки проставленные напрямую от логина как выше.....
не работает нифига




под юзером в SQL Server Management Studio захожу - пишу запрос - select * from lsdbo.EmplDB_v и ..... тишина - он активен остальные нет, хотя галочка для него от sa стоит есть еще от него такая же галка на тот же статус от него лично... но это тоже не то - что-то - делаю не так а что - непонятно
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
хм..
у меня работает все..
и что, если убрать галочку у строки View server state (кстати, она же стоит в колонке Предоставить (Grant)?), то из свойств самого логина пропадет защищенный объект?
а можно картинки посмотреть?
желательно со списком логинов с выбранным логином и отмеченным правом, и картинку со свойством логина с защищенным объектом..
правда, у нас используются не такие конструкции, мы работаем с запросом:
у меня работает все..
и что, если убрать галочку у строки View server state (кстати, она же стоит в колонке Предоставить (Grant)?), то из свойств самого логина пропадет защищенный объект?
а можно картинки посмотреть?
желательно со списком логинов с выбранным логином и отмеченным правом, и картинку со свойством логина с защищенным объектом..
правда, у нас используются не такие конструкции, мы работаем с запросом:
Код: Выделить всё
bitmap('C:\Program Files\LotsiaSoft\PartY\Icons\Logos\'+ if (f_execSQLSelect_3 ('select loginname from party.lsdbo.empldb_v empl
where empl.user_id = '+ a100000076000003+' and loginname in(select distinct loginame from master..sysprocesses)',
'','','',30)<> '', 'state_online.gif', 'state_offline.gif' ))
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
галку можно убрать в любом месте - везде пропадет....
на счет
или где-то еще?
картинка свойства сервера и разрешения для логина, и со стороны логина и со стороны сервера - одна и та же в нижней части
картинка предоставленных логину разрешений идентична полностью
на счет
не совсем понял - она у меня только там и стоит(кстати, она же стоит в колонке Предоставить (Grant)?)

картинка свойства сервера и разрешения для логина, и со стороны логина и со стороны сервера - одна и та же в нижней части
картинка предоставленных логину разрешений идентична полностью
- Вложения
-
- 2.gif (12.13 КБ) 56920 просмотров
-
- 1.gif (51.01 КБ) 56920 просмотров
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
вот оно - наверно где собака порылась
у тебя запрос благодаря in(select distinct loginame from master..sysprocesses) действительно показывает то что нужно - щас проверю на боевом действии, но судя по всему это именно здесь

у тебя запрос
Код: Выделить всё
select loginname from lsdbo.empldb_v empl
where empl.user_id = 72 and loginname in(select distinct loginame from master..sysprocesses)
Последний раз редактировалось Александр 19 окт 2009, 15:03, всего редактировалось 2 раза.
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: Как работать со списком подключеных к базе пользователей?
э-э-э...
кажется невероятным, но если я в квери аналайзере, запущенном от имени юзера, у которого есть View Server State, запущу скрипт
или скрипт
то у всех юзеров, кроме dbo и текущего юзера, в isconnected будут 0.
при этом
который используется нами в приведенном выше выражении для определения статуса юзера, показывает список всех подключенных логинов...
и при этом, ессно, этот юзер может смотреть адекватную информацию о подключенности других юзеров в интерфейсе Лоции...
кажется невероятным, но если я в квери аналайзере, запущенном от имени юзера, у которого есть View Server State, запущу скрипт
Код: Выделить всё
select *
from LSDBO.EmplDB_v
Код: Выделить всё
select User_ID, Filial_ID,
LoginName, author_id, cd, DateFrom,
DateTo, PwdChange, PwdLock, PwdMode,
(select Coalesce(Max(1), 0)
from master.dbo.syslogins l, sysusers u, master..sysprocesses p
where edb.LoginName = u.name and l.sid = u.sid and
p.Loginame = l.name and p.dbid = db_id()) as IsConnected
from lsdbo.EmplDB edb
при этом
Код: Выделить всё
select distinct loginame from master..sysprocesses
и при этом, ессно, этот юзер может смотреть адекватную информацию о подключенности других юзеров в интерфейсе Лоции...
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Как работать со списком подключеных к базе пользователей?
Андрей - спасибо! я пришел к таким же выводам
под юзером дают - совершенно разные результаты......
спрашивается - и оно нам надо!? - не до конца настроенная колонка isconnected вида lsdbo.empldb_v




Код: Выделить всё
select count(*) from lsdbo.empldb_v empl where empl.user_id = 82 and loginname in(select distinct loginame from master..sysprocesses)
Код: Выделить всё
select isconnected from lsdbo.empldb_v where user_id=82
спрашивается - и оно нам надо!? - не до конца настроенная колонка isconnected вида lsdbo.empldb_v




Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный