Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

программное добавление юзеров и прав   Найти похожие ветки 

 
stud ©   (2004-07-07 15:46) [0]

пытаюсь добавить юзера с указанием роли. юзер добавляется но не является членом роли. использую ibsecurityservice.
 data.userservice.Active:=true;
 data.userservice.UserName:=trim(useredit.Text);
 data.userservice.Password:=pass.Text;
 data.userservice.SQlRole:=ansiuppercase(role[roleedit.itemindex]);
 data.userservice.AddUser;
в чем засада?


 
Johnmen ©   (2004-07-07 15:59) [1]

А хто её знает...
Не проще ли просто выполнить пару запросов ?


 
stud ©   (2004-07-07 16:02) [2]

придется


 
Johnmen ©   (2004-07-07 16:15) [3]

Что-то я прогнал...:)
Создать юзера можно только вызвав апишную функцию.


 
Соловьев ©   (2004-07-07 16:19) [4]


> data.userservice.SQlRole:=ansiuppercase(role[roleedit.itemindex]);

это не та роль. Выписка из хелпа:
...
The role name used to connect to the isc4.gdb security database.


 
Соловьев ©   (2004-07-07 16:21) [5]

думаю создать пользователя а потом уже с помощью запросов дать привелегии.


 
stud ©   (2004-07-07 16:26) [6]

вот блин

property SQLRole: String;

C++ syntax:

__property AnsiString SQlRole = {read=FSQLRole, write=FSQLRole};

Use SQLRole to set or return role name used to connect to the isc4.gdb security database.

а как это понимать?


 
y-soft ©   (2004-07-07 16:40) [7]

Кхм... А разве роли не пишутся непосредственно в рабочие базы посредством обычного вызова SQL CREATE ROLE (пишется в RDB$ROLES), GRANT, REVOKE (RDB$USER_PRIVILEGES) и относятся только к этим базам? При этом даже не проверяется, существует ли пользователь...

А т.к. ISC4.GDB такая же база, как и все другие, то и для нее можно назначать роли и привилегии (но не рекомендуется)...

Можно даже работать прямо с таблицами ISC4.GDB безо всякого IBAPI, даже новых пользователей добавлять :)


 
stud ©   (2004-07-07 17:01) [8]


> y-soft ©

при желании можно и напрямую писать в файл isc4.gdb как в текстовый. ))))
вопрос не в этом


 
y-soft ©   (2004-07-07 17:06) [9]

>stud ©   (07.07.04 17:01) [8]

вопрос не в этом

Ну а в чем же тогда? Из сервиса назначать роли не получится. Только непосредственно в рабочие базы. Можно и до регистрации нового пользователя. О причинах я уже говорил в [7]


 
stud ©   (2004-07-07 17:15) [10]


> Из сервиса назначать роли не получится

это я уже слышал((
проблема в том, что юзер, который будет заводить пользователей и раздавать права не является sysdba и придется переподключаться к базе для выполнения этих операций после чего опять входить под этим юзером. а так запустил сервис от имени админа и все..... но не тут-то было..


 
y-soft ©   (2004-07-07 17:26) [11]

>stud ©   (07.07.04 17:15) [10]

Вообще IMHO  система раздачи прав и авторизации в IB очень далека от идеала. Какая-то половинчатая. Для моих задач было бы гораздо удобней, если бы все - и пользователи, и права - хранились в рабочих базах. И никаких всемогущих SYSDBA и смены владельца после Restore! :)

В FireBird 2.0 такое грозились сделать...


 
stud ©   (2004-07-07 17:27) [12]

будем ждать))))


 
y-soft ©   (2004-07-07 17:32) [13]

>stud ©   (07.07.04 17:27) [12]

А чем Вам не нравится напрямую регистрировать пользователей в ISC4.GDB (или ее аналогов)? А то иначе никто, кроме SYSDBA этого сделать не может. Надо только заранее дать права на запись и модификацию таблицы USERS уполномоченному пользователю.

Алгоритм создания пароля (DESX) тоже известен...

Способ, конечно, крайне не рекомендуемый, но иногда - единственно возможный...


 
stud ©   (2004-07-07 17:35) [14]

ну варианты с использованием sql есть, но както "неоптимально"(с)


 
BanderLog_t   (2004-07-08 06:32) [15]

> stud ©   (07.07.04 17:15) [10]
А вот это ты зря так думаешь, этот пользователь должен просто навсего иметь права на выдачу этих ролей что как говорил

>y-soft ©   (07.07.04 16:40) [7]

делается посредством grand с указанием опции with admin option


 
stud ©   (2004-07-08 09:12) [16]


> BanderLog_t  

если ролей штук 10 и возможно их дальнейшее увеличение, так этот юзер должен быть членом всех этих ролей а права у каждой роли свои и этому юзеру не нужно иметь прав больше чем он уже имеет, зачем это нужно?? если бы все было так просто)))


 
BanderLog_t   (2004-07-08 11:44) [17]

Ты назвал админа - юзером? :)
В  итоге ты хочешь дать пользователю право на раздачу прав и ничего другого (грубо говоря)? Тогда что же ему помешает выдать самому себе остальные права? :) Вводить дополнительные проверки? И работать в итоге напрямую с системными таблицами.  :)


 
stud ©   (2004-07-08 12:34) [18]

админ базы это я)) мне не надо ничего давать, я и сам возьму))
чтобы не заниматься ерундой раздавая права различным пользователям, хочу эту функцию передать руководителю отделения. но он не является админом. он обычный юзер со своими правами.
выдать себе остальные права он не сможет. т.к. пользователь может быть членом только одной группы



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

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
14-1089463017
AlexG
2004-07-10 16:36
2004.08.01
Разработка программ на маленьком PC (корманном)


4-1087048261
Игорь
2004-06-12 17:51
2004.08.01
Перехват открытия файлов


1-1090410817
Игорь_
2004-07-21 15:53
2004.08.01
Свойство формы


4-1087415381
juiceman
2004-06-16 23:49
2004.08.01
обработка Enter в ListView


14-1089545181
Agent13
2004-07-11 15:26
2004.08.01
Подумываю обзавестись ноугбуком...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский