Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

пользователей InterBase   Найти похожие ветки 

 
marsello   (2003-01-27 18:35) [0]

Как программно зарегистрировать пользователей InterBase в сервере ?


 
Victor_Cr   (2003-01-27 19:35) [1]

Запускаешь из командной строки утилиту gsec.exe с параметрами:

gsec utility - maintains user password database

command line usage:
>gsec [ <options> ... ] -<command> [ <parameter> ... ]

interactive usage:
>gsec [ <options> ... ]
GSEC> <command> [ <parameter> ... ]
...

available options:
-user <database administrator name>
-password <database administrator password>
-role <database administrator SQL role name>
-database <security database>
-z

available commands:
adding a new user:
add <name> [ <parameter> ... ]
deleting a current user:
delete <name>
displaying all users:
display
displaying one user:
display <name>
modifying a user"s parameters:
modify <name> <parameter> [ <parameter> ... ]
help:
? (interactive only)
help
displaying version number:
z (interactive only)
quit interactive session:
quit (interactive only)

available parameters:
-pw <password>
-uid <uid>
-gid <uid>
-proj <projectname>
-org <organizationname>
-fname <firstname>
-mname <middlename>
-lname <lastname>


 
marsello   (2003-01-28 08:57) [2]

Я что то не разобрался, например?
"C:\Program Files\....\bin\gsec.exe/ ? "
? - что должно здесь быть?


 
Reindeer Moss Eater   (2003-01-28 09:00) [3]

То, что и написано. Символ вопросительного знака.


 
Dmitry W.   (2003-01-28 09:27) [4]

программно - это вообще говоря не с помощью некой программы.
Иначе проще все делать в каком-нибудь менеджере. :)

На вкладке IBX или Fib+ есть специальные компоненты Security
которые и предназначены для опреаций с ISC4.


 
Николай В.   (2003-01-28 10:27) [5]

Мне кажется, что можно сделать так. Написать хр. процедуру на сервере, которая добавляла бы юзера в базу, использующая для этого встроенные возможности этого SQL-сервера. А в Delphi уже написать интерфейс к этой процедуре, то есть, клиентика, через которого передавались бы параметры этой процедуре.


 
id_privin   (2003-01-28 10:42) [6]

Мы долго страдали, а потом решили этот вопрос так :

procedure LoadFunctions;
begin
LIB := GetModuleHandle(IBASE_DLL);
if LIB = 0 then
raise Exception.Create(IBASE_DLL + " isn""t in memory");

isc_add_user := GetProcAddress(LIB, "isc_add_user");
if @isc_add_user = nil then
raise Exception.Create("can""t load add_user");

isc_delete_user := GetProcAddress(LIB, "isc_delete_user");
if @isc_delete_user = nil then
raise Exception.Create("can""t load delete_user");

isc_modify_user := GetProcAddress(LIB, "isc_modify_user");
if @isc_modify_user = nil then
raise Exception.Create("can""t load modify_user");
end;

procedure FillUserData(const Session: TIBDatabase; var UserData: TUserSecData);

function GetParam(name: string; Params: TStrings): string;
begin
Result:= Params.Values[name];
end;

var
P: integer;
begin
with Session do begin
UserData.dba_user_name := StringToPChar(GetParam("user_name", Params));
UserData.dba_password := StringToPChar(GetParam("password", Params));

if Trim(UserData.dba_password) = "" then
raise
Exception.Create("DBA password required. Provide password parameter for connection");

P := Pos(":", DatabaseName);
if P > 2 then begin
UserData.protocol := sec_protocol_tcpip;
UserData.server := StringToPChar(copy(DatabaseName, 1, p - 1));
end else if Pos("\\", DatabaseName) = 1 then begin
UserData.protocol := sec_protocol_netbeui;
P := Pos("\", Copy(DatabaseName, 3, length(DatabaseName)));
UserData.server := StringToPChar(copy(DatabaseName, 3, p - 1));
end else begin
P := Pos("@", DatabaseName);
if P > 0 then begin
UserData.protocol := sec_protocol_spx;
UserData.server := StringToPChar(copy(DatabaseName, 1, p - 1));
end else begin
UserData.protocol := sec_protocol_local;
UserData.server := "";
end;
end;
end;
UserData.sec_flags := UserData.sec_flags
or sec_server_spec
or sec_dba_user_name_spec
or sec_dba_password_spec;
end;

procedure TIBUser.InBaseCreate(UserName, password: string);
var
UserData: TUserSecData;
begin
FillChar(UserData, Sizeof(TUserSecData), 0);
IsReady;

UserData.sec_flags := sec_password_spec;
UserData.user_name := StringToPChar(UserName);
UserData.password := StringToPChar(password);
FillUserData(Session, UserData);

if not FunctionsLoaded then
LoadFunctions;
Session.Call(isc_add_user(StatusVector, @UserData), true);

FUserName := UserName;
end;


Полный пакет, с заголовками и прочими полезностями могу прислать мылом.


 
marsello   (2003-01-28 17:48) [7]

Спасииииииииибо!!!!!!!!!!!!!!!


 
kaif   (2003-01-28 17:58) [8]

Помнится, в IBX под D5 был отдельный модуль прототипов всех функций администрирования сервера. Я как-то в свое время использовал этот модуль для создания примитивного Администратора сервера.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.051 c
1-38299
UDS
2003-02-06 00:05
2003.02.13
Как перейти к определнному шагу выполнения программы?


7-38607
Shluz
2002-12-09 12:51
2003.02.13
Левый нижний угол экрана


3-38112
alxx
2003-01-28 11:38
2003.02.13
Что бы это значило?


1-38318
ИгорьК
2003-01-31 11:29
2003.02.13
DHTML Edit Control for IE 5.0


14-38557
Ежик
2003-01-28 09:31
2003.02.13
Включение компьютера.....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский