![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список всех зарегистрированных пользователей? [D5, IB5.x]
Dens © (2003-09-13 16:58:00)
Мастера, подскажите пожалуйста.
На сервере зарегистрировано несколько пользователей.
Перед входом в программу нужно выдавать запрос на имя ползователя и пароль.
Так вот, каким образом можно получить список всех этих пользователей. Есть какой-либо способ, кроме как коннектиться напрямую к isc4.gdb?
Filat (2003-09-14 13:54:00) [1]
Тааааааааааааааакккккк .........., надо попробовать, сенк да интересные мысли.
Zacho (2003-09-14 02:04:00) [2]
> [NIKEL] © (14.09.03 01:58) [9]
Не.. Нету.
> Dens (13.09.03 16:58)
> Есть какой-либо способ, кроме как коннектиться напрямую
> к isc4.gdb?
И еще:
> Zacho © (13.09.03 17:42) [5]
>на сервере может быть несколько БД, а зачем тебе в списке пользователи,
> не имеющие к твоей БД никакого отношения ?
[NIKEL] (2003-09-14 01:58:00) [3]
Zacho © (14.09.03 00:17) [8]
Не во всех версиях IB есть ServicesAPI. А даже если есть, ну и толку то для данной задачи ?
толк есть.
надо просто подключиться к isc4.gdb и все.
стандартные функции, если я не ошибаюсь, не предоставляют информации о пользователях. Там есть функции добавления, удаления и модификации пользователей.
Подключился к isc4.gdb и получил список
SELECT DISTINCT USER_NAME, FIRST_NAME, MIDDLE_NAME, LAST_NAME, " +
"FULL_NAME, GROUP_NAME, SYS_USER_NAME, UID, GID, COMMENT " +
"FROM USERS ORDER BY USER_NAME
и все
Zacho (2003-09-14 00:17:00) [4]
> DrPass © (14.09.03 00:08) [7]
Не во всех версиях IB есть ServicesAPI. А даже если есть, ну и толку то для данной задачи ?
DrPass (2003-09-14 00:08:00) [5]
Вообще-то сервер IB предоставляет специальный API, с помощью которого можно получить список всех юзеров (так же, как это делает IBConsole). Ну а проще всего воспользоваться компонентой IBSecurityService (палитра Interbase Admin), которая через этот API может дать тебе список юзеров
Dens (2003-09-13 17:49:00) [6]
Ну что ж. Нет так нет.
Спасибо и на этом.
Zacho (2003-09-13 17:42:00) [7]
> Dens (13.09.03 17:30) [4]
> А как это узнать на сервере?
На сколько я знаю - в общем случае никак. И я бы посоветовал все-же отдельный файл со списком, хотя бы потому, что на сервере может быть несколько БД, а зачем тебе в списке пользователи, не имеющие к твоей БД никакого отношения ?
Dens (2003-09-13 17:30:00) [8]
Оно то конечно можно, но удобнее выбрать из списка.
А то глупый юзер как-нибудь не так введет.
Если уж нет другого способа, то пусть тогда юзер сам вводит.
Я ж спросил на всякий случай, может как-нибудь и можно.
Если по другому нельзя, тогда можно ли как нибудь по имени сервера узнать путь к isc4.gdb.
Я пробовал копаться в реестре.
На локальной машине вроде бы нашел путь к каталогу, в котой установлен IB:
HKEY_LOCAL_MACHINE\SOFTWARE\InterBase Corp\InterBase\CurrentVersion
и в строке RootDirectory - путь к каталогу.
Но это на локальной машине.
А как это узнать на сервере?
Zacho (2003-09-13 17:14:00) [9]
> Dens (13.09.03 17:07) [2]
Естественно. А так ли уж вообще нужно получать этот список ? Может просто, пусть пользователь сам вводит свое имя ?
Dens (2003-09-13 17:07:00) [10]
> Хранить список пользователей в каком-нибудь файле
Тогда это почти тоже самое, что и isc4.gdb.
Но тогда при каждом обновлении списка пользователей в isc4.gdb придется делать те же изменения и в этом файле.
Zacho (2003-09-13 17:02:00) [11]
Есть. Хранить список пользователей в каком-нибудь файле.