Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Interbase

Назначение прав пользователей на таблицу
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Назначение прав пользователей на таблицу

Какое может быть описание? И так все понятно. Кто делает эти формы?

Зависимости: uses IBQuery,IBDataBase,SysUtils
Автор: Dracula, dracula@krruda.dp.ua, Krivoy Rog
Copyright: Dracula
Дата: 28 января 2003 г.
***************************************************** }


unit IBRights;
interface

uses IBQuery, IBDataBase, SysUtils;

type
TIBUserRights = record
sel: Boolean;
ins: Boolean;
upd: Boolean;
del: Boolean;
exe: Boolean;
end;

function GetUserRights(UserName, Relation: string; IBDb: TIBDataBase):
TIBUserRights;
var
Rights: TIBUserRights;

implementation

function GetUserRights(UserName, Relation: string; IBDb: TIBDataBase):
TIBUserRights;
var
Qr: TIBQuery;
Tr: TIBTransaction;
begin
if Assigned(IBDb) then
begin
Tr := TIBTransaction.Create(nil);
try
Tr.DefaultDatabase := IBDb;
Qr := TIBQuery.Create(nil);
Qr.Database := IBDb;
Tr.StartTransaction;
Qr.Close;
Qr.Sql.Clear;
Qr.Sql.Add('select RDB$USER,RDB$PRIVILEGE,RDB$RELATION_NAME ' +
'from RDB$USER_PRIVILEGES ' +
'where upper(RDB$USER)=:AUser ' +
'and upper(RDB$RELATION_NAME)=:ARelation');
Qr.Prepare;
Qr.Params.ParamValues['AUser'] := AnsiUpperCase(UserName);
Qr.Params.ParamValues['ARelation'] := AnsiUpperCase(Relation);
Qr.Open;
while not Qr.eof do
begin
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'S' then
Rights.sel := true
else
Rights.sel := false;
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'I' then
Rights.ins := true
else
Rights.ins := false;
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'U' then
Rights.upd := true
else
Rights.upd := false;
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'D' then
Rights.del := true
else
Rights.del := false;
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'X' then
Rights.exe := true
else
Rights.exe := false;
if Copy(Trim(Qr.FieldByName('RDB$PRIVILEGE').AsString), 1, 1) = 'R' then
//Rights.ref:=true else Rights.ref:=false;
begin
Rights.sel := true;
Rights.ins := true;
Rights.upd := true;
Rights.del := true;
Rights.exe := true;
end;
Qr.Next;
end;
Qr.Close;
Tr.Commit;
Qr.Free;
finally
Tr.Free;
end;
end;
Result := Rights;
end;

end.

Пример использования:

uses....., IBRights;
......
var
rights: TIBUserRights;

implementation
.....
begin
...
rights := GetUserRights(DllLogin, NameTable, IBDataBase);
.....
end;
Категория: Interbase | Добавил: Angel (28.07.2008)
Просмотров: 425 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz