Interbase/Firebird Users Role
2 отговора
60 прегледа
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;
Моля ако някой знае по-правилен начин, да напише, за което предварително благодаря.
Как мога да разбера каква е ролята на даден потребител?
Понеже така и не открих някакъв директен метод по който да го направя сега използвам един начин който никак не е елегантен.
Ще дам еднин пример как разпознавам един потребител дали е администратор:
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;
Моля ако някой знае по-правилен начин, да напише, за което предварително благодаря.
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
select
current_connection,
current_date,
current_role,
current_time,
current_timestamp,
current_transaction,
current_user
from rdb$database