![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Управление доступом к базе данных... [D5, IB5.x]
Malder © (2002-02-16 12:37:00)Подскажите, как управлять доступом к базе данных ? То есть, допустим, есть некоторые записи, каждая запись - информация о клиенте. Для каждой определенной записи есть менеджер, который ответственен за эту запись (за данного клиента). Как сделать, чтоб под своим логином/паролем менеджер мог посмотреть только свои записи, то есть записи, где поле Manager="Ivan" ? Или мог посмотреть/редактировать свои записи, а чужие только смотреть ?
Естесственно, запрещение/разрешение доступа должно определяться сервером, а не строкой SQL-запроса: SELECT from DEP where Manager=Ivan.
Fay (2002-02-17 02:36:00) [1]2 Havez ©
Прошу прощения, ухитрился не заметить Вашего ответа.
Fay (2002-02-17 02:33:00) [2]For IB:
create generator t1_g;
create table t1(
t1_id integer not null,
t1_name varchar(32) not null collate pxw_cyrl,
t1_owner varchar(16) default user not null ,
constraint pk_t1 primary key(t1_id)
);
set term ^;
create trigger t1_bi for t1
before insert
as
begin
new.t1_id=gen_id(t1_g, 1);
end
^
set term ;^
create view t1_v
as
select
t1_id,
t1_name
from t1
where t1_owner=user;
grant all on t1_v to public;
drpass (2002-02-16 19:52:00) [3]Почему же нельзя?
Просто нужно запретить менеджерам доступ к таблице, и для каждого из них создать представление (create view) по их данным.
Havez (2002-02-16 15:56:00) [4]Вряд-ли доступ к записям можно организовать через сервер.
Лучше убрать гранты для таблицы и создать просмотр как раз с тем текстом что ты привёл, и дать грант к нему.
where dep.Manager = USER
Malder (2002-02-16 13:39:00) [5]Скажите хоть что нибудь. Если чего непонятно, что я хочу - скажите. Постараюсь обьяснить поподробнее...