![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Совет нужен по IB [D6, IB6.x]
Max Zyuzin © (2002-10-30 08:41:00)Приветствую всех!
Вот тут пишу я программу сетевую, в качестве сервера БД выбрал InterBase. И вот думаю как грамотнее организовать...
Вопрос в том как правильно настраивать параметры конекта клиентов к БД, т.е. как удобнее задавать путь к БД и пароль. Каждый раз перекомпилировать клиента, в случае если решили сервер переставить на другую машину, это ни есть хорошо.
Самый протоой способ который я пока придумал - это хранить пути и пароли в ini фалах вместе с клиентом, тогда поправить будет не сложно случись что... но опять же хранить все в открытом виде тоже не очень хорошо....
Вот такая дилема... кто что посоветует?
AlteFriz (2002-10-31 12:24:00) [1]А где взять эти компоненты (административные)?
NickBat (2002-10-31 10:22:00) [2]Есть готовая программка для добавления/изменения пользователей под IB. Если надо пиши.
Max Zyuzin (2002-10-31 08:24:00) [3]Спасибо большое всем, а особенно kaif © (30.10.02 23:21) помотрел эту палитру и точно есть то что мне нужно :)!!
kaif (2002-10-30 23:21:00) [4]Так в палитре IBX (административной) есть компоненты, позволяющие упростить добавление пользователей
Jack128 (2002-10-30 21:56:00) [5]2 Max Zyuzin ©
const
sec_uid_spec = $00000001;
sec_gid_spec = $00000002;
sec_server_spec = $00000004;
sec_password_spec = $00000008;
sec_group_name_spec = $00000010;
sec_first_name_spec = $00000020;
sec_middle_name_spec = $00000040;
sec_last_name_spec = $00000080;
sec_dba_user_name_spec = $00000100;
sec_dba_password_spec = $00000200;
sec_protocol_tcpip = 1;
sec_protocol_netbeui = 2;
sec_protocol_spx = 3;
sec_protocol_local = 4;
type
PISC_STATUS = ^TISC_STATUS;
TISC_STATUS = integer;
PUser_Sec_Data = ^TUser_Sec_Data;
TUser_Sec_Data = record
sec_flags : short; {* which fields are specified *}
uid : integer; {* the user"s id *}
gid : integer; {* the user"s group id *}
protocol : integer; {* protocol to use for connection *}
server : PChar; {* server to administer *}
user_name : Pchar; {* the user"s name *}
password : Pchar; {* the user"s password *}
group_name : Pchar; {* the group name *}
first_name : Pchar; {* the user"s first name *}
middle_name : Pchar; {* the user"s middle name *}
last_name : Pchar; {* the user"s last name *}
dba_user_name : Pchar; {* the dba user name *}
dba_password : Pchar; {* the dba password *}
end;
function isc_add_user(status : PISC_STATUS; PUserData : PUser_Sec_Data) : Integer; stdcall; external "gds32.dll" name "isc_add_user";
function isc_modify_user(status : PISC_STATUS; PUserData : PUser_Sec_Data) : Integer; stdcall; external "gds32.dll" name "isc_modify_user";
function isc_delete_user(status : PISC_STATUS; PUserData : PUser_Sec_Data) : Integer; stdcall; external "gds32.dll" name "isc_delete_user";
visla (2002-10-30 21:29:00) [6]Макс, ищи в документации по SQL. Есть возможность на серваке оставить триггер по занесению юзеров (псевдо-консоль). Вызываешь ее програмно стандартным методом
Max Zyuzin (2002-10-30 11:49:00) [7]У меня еще вопрос, связанны с предидущим.
Мне надо программно пользователей создавать, редактировать и удалять.
На www.ibase.ru нашел pdf-чик один по SQL ролям...
Там есть пример как программно добавлять пользователей. Но он использует функции хитрые InterBase API, в общем я у себя таких библиотек не нашел Ibase.pas в случае Дельфи. Кто нить сталкивался?
Max Zyuzin (2002-10-30 11:07:00) [8]Усем спасибо за участие %) Подумал я и сделаю так, как предложил Johnmen © (30.10.02 09:30)
Johnmen (2002-10-30 09:30:00) [9]Пожалуй самое простое и надежное - ini файл с параметрами соединения (кроме пароля). И пусть все смотрят на него, что с того ? А пароль вводится...
Карелин Артем (2002-10-30 09:19:00) [10]Путь к базе можно спрашивать у пользователя. Я как-то делал так: хранил путь в реестре. Если записи в реестре нет либо файл не существует, то вывожу диалог открытия файлов. После этого записываю новый путь в реестр.
Насчет открытого вида: можно как-нить шифрануть...
Max Zyuzin (2002-10-30 08:47:00) [11]Ну по первому в общем я так и думал :)
А по второму... ведь тогда в программе придется жестко прописать этот самый сетевой каталог.
Alexandr (2002-10-30 08:43:00) [12]1) пароль спрашивать у пользователя.
2) путь к базе данных хранить в расшаренном сетевом каталоге.