Назначение прав пользователей на таблицуDelphi , Базы данных , InterbaseНазначение прав пользователей на таблицу
Автор: Dracula { **** 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; Привет! Вот перевод на русский язык: Единица Delphi, которая предоставляет функцию для получения прав пользователя для конкретной таблицы в базе данных InterBase. Функция
Функция возвращает запись типа
Функция использует компонент Разработано утилитарное приложение для назначения прав пользователей на таблицу в базе данных InterBase. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |