Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Как создать пользователя


Автор: tishaishii 28.12.2006, 10:52
Как создать пользователя в Firebird 2x?
create user 'test' password 'test' не проходит, говорит:
Код
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 8.
user.

Автор: Akella 4.1.2007, 12:22
помоему пользователя можно добавлять или удалять только через утилиту gsec

Автор: Akella 4.1.2007, 14:08
Цитата

В следующем примере заводиться пользователь BJONES с паролем "blah" и указываются его имя и фамилия.

 GSEC add BJONES -pw blah -fname Bobby -lname Jones
 GSEC display BJONES
 user name uid gid full name
 ------------------------------------------
 BJONES    0   0   Bobby Jones
 


Добавлено @ 14:08 
Цитата

Изменение информации о пользователе

Для изменения информации о существующем пользователе используется команда MODIFY. Следующий пример демонстрирует процесс модификации UserID и имени пользователя BJONES

 GSEC modify BJONES -uid 22 -fname Brad
 GSEC display BJONES
 user name uid gid full name
 --------------------------------------------
 BJONES    22  0   Brad Jones


Добавлено @ 14:08 
Цитата

Удаление пользователя

Данный пример демонстрирует, как можно с помощью команды DELETE удалить пользователя BJONES. Чтобы убедиться в успешности проделанной работы, используется команда DISPLAY, которая показывает список всех существующих пользователей.

 GSEC delete BJONES
 GSEC display
 user name uid gid full name
 -------------------------------------------
 SYSDBA    0   0
 TEST      0   0
 BBANDY    0   0
 MKEMPER   0   0


Добавлено @ 14:10 
Цитата

 Использование InterBase API для управления пользователями

Начиная с версии 5.0 InterBase предоставляет собственный Application Programming Interface (API) для доступа к базе данных и осуществления административных функций. Помимо прочего в данном API имеются три функции, которые позволяют разработчику приложения реализовать администрирование пользователей.

kdv: далее описание функций isc_add_user, isc_modify_user, isc_delete_user и примеры удалены для сокращения объема статьи. Примеры на C см. в ApiGuide, примеры на Delphi - ibusers.zip. Пример использования всех InterBase Admin (services api) компонент - AdminDemo.


взято с http://www.ibase.ru/devinfo/sqlroles.htm

Автор: tishaishii 26.3.2007, 08:19
Короче, вот недоделанный интерфейс сделал:
Код
package GSEC;
use IO::Handle;
use Win32::Registry;

sub clearPath {my$str=shift;$str=~s{\\$}{}g;+$str}
sub registryValue {
    my($path, $rh, $result)=shift;
    ${'::'.$path}->Open(shift, $rh) && $rh->QueryValueEx(shift, undef, $result);
    +$result
}

sub new {
    my($class, $self)=(shift, {@_});
    open $self->{gsec}, '|"'.&clearPath(&registryValue('HKEY_LOCAL_MACHINE', 'SOFTWARE\Firebird Project\Firebird Server\Instances', 'DefaultInstance')).'\bin\gsec.exe" -user '.$self->{-user}.' -password '.$self->{-passw} or die;
    +bless $self, $class
}

sub add {
    my($self, $users)=(shift, {@_});
    $self->{gsec}->print(
        'add ', $_,
        ' -pw ', $users->{$_}{-passw},
        (exists $users->{$_}{-fname} ? ' -fname '.$users->{$_}{-fname} : ()),
        (exists $users->{$_}{-mname} ? ' -mname '.$users->{$_}{-mname} : ()),
        (exists $users->{$_}{-lname} ? ' -lname '.$users->{$_}{-lname} : ()),
        (exists $users->{$_}{-uid} ? ' -uid '.$users->{$_}{-uid} : ()),
        (exists $users->{$_}{-gid} ? ' -gid '.$users->{$_}{-gid} : ()),
        "\n"
    ) foreach keys %$users;
    +$self
}

sub del {
    my$self=shift;
    $self->{gsec}->print('del ', $_, "\n") foreach @_;
    +$self
}

sub DESTROY {shift->{gsec}->close if $_[0] && ref $_[0]{gsec}}

package main;

my$gsec=GSEC->new(-user=>'SYSDBA', -passw=>'masterkey');
$gsec->add(
    TEST=>{
        -passw=>'test'
    }
);
$gsec->del('TEST');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)