Interbase/Firebird Users Role

2 отговора 60 прегледа
#1

Interbase/Firebird Users Role

Имам следния въпрос:
Как мога да разбера каква е ролята на даден потребител?
Понеже така и не открих някакъв директен метод по който да го направя сега използвам един начин който никак не е елегантен.

Ще дам еднин пример как разпознавам един потребител дали е администратор:
1. Създавам роля ADMIN
2. Създавам съхранен процедура (CHECK_IS_ADMIN), която не прави нищо :)
begin
suspend;
end
3. Задавам права за изпълнение на процедурата само на ролята ADMIN.
4. В програмата опитвам да изпълня процедурата и ако не се получи значи не потребителя не е администратор.

...
procCheckIsAdmin: TIBStoredProc;
...
fIsAdmin: Boolean;
fIsSupport: Boolean;
...
try
procCheckIsAdmin.ExecProc;
fIsAdmin := True;
except
fIsAdmin := False;
end;

Моля ако някой знае по-правилен начин, да напише, за което предварително благодаря.

Отговор
в отговор на mishomich #2

Re: Interbase/Firebird Users Role

FB1.5

select
current_connection,
current_date,
current_role,
current_time,
current_timestamp,
current_transaction,
current_user
from rdb$database

Отговор
в отговор на NDeu #3

Re: Interbase/Firebird Users Role

Благодаря приятел, това ме устройва напълно.

Отговор