• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Как Программно Назначить Роль Пользователя

  • Автор темы Автор темы ksmak
  • Дата начала Дата начала
K

ksmak

база данных firebird 2.5
использую компоненты fib 6.8

когда вручную пишу sql оператор

GRANT ROLE1 TO USER1;

то роль нормально назначается без проблем

а когда программно хочу назначить роль через процедуру в программе

procedure TfrmUsers.SetUserRole(login, role: String);
begin
frmMain.scr.Transaction.StartTransaction;
frmMain.scr.Script.Clear;
frmMain.scr.Script.Add('GRANT '+role+' TO '+login);
frmMain.scr.ExecuteScript;
end;

то ошибок не выдает, но роль не назначается

в чем может быть причина и как всетаки правильно назначать роли пользователям
 
база данных firebird 2.5
использую компоненты fib 6.8
а когда программно хочу назначить роль через процедуру в программе
то ошибок не выдает, но роль не назначается
в чем может быть причина и как всетаки правильно назначать роли пользователям
FIBPlus никогда не использовал. Предпочитаю (и всем подряд советую) ZeosLib. Она бесплатная и очень хорошо работает со всеми популярными базами данных.
Поэтому, сами понимаете, конкретно про сам fib сказать не могу. но...
Для того чтобы работало:
1) Нужно быть залогиненым к базе суперадмином или (как минимум) пользователем с правами управления ролями.
2) транзакция должна быть завершена. (должно быть что-то типа... FLUSH PRIVILEGES или Transaction.StopTransaction а может быть даже просто специальный символ обозначающий конец SQL команды. например ";" или перевод каретки).
В приведенном Вами куске кода, я ничего такого не увидел.
 
FIBPlus никогда не использовал. Предпочитаю (и всем подряд советую) ZeosLib. Она бесплатная и очень хорошо работает со всеми популярными базами данных.
Поэтому, сами понимаете, конкретно про сам fib сказать не могу. но...
Для того чтобы работало:
1) Нужно быть залогиненым к базе суперадмином или (как минимум) пользователем с правами управления ролями.
2) транзакция должна быть завершена. (должно быть что-то типа... FLUSH PRIVILEGES или Transaction.StopTransaction а может быть даже просто специальный символ обозначающий конец SQL команды. например ";" или перевод каретки).
В приведенном Вами куске кода, я ничего такого не увидел.


точно!
надо было завершить транзакцию

frmMain.scr.Transaction.Commit;

теперь работает

большое спасибо
а на счет библиотеки ZeosLib не подскажете где можно найти
 
точно!
теперь работает
а на счет библиотеки ZeosLib не подскажете где можно найти
Почитайте вот тут мои посты https://codeby.net/threads/49988.html
Там про MySQL, но про "где взять" и порядок установки тот же самый. Разница только в том, что для FireBird нужно вместо MySQL-клиентских библиотек, скачать FireBird-овские.
Они там-же в репозитории, в соседней папке. Для последней стабильной (7.0.4) версии - тут: link removed
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD