Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизДоступ к БД Найти похожие ветки
← →
Вопрошающий (2003-04-08 13:30) [0]Ситуация следующая
Доступ к ХП организовн при помощи ролей.
Сами пользователи доступа не имеют.
При выполенении некоторых ХП (изменение, вставка) если в теле процедуры перед действиями идет многочисленная выборка из других таблиц, появляеться ошибка об отсутсвеи прав на чтение таблицы
Доступ к таблицам этой(этих) процедур есть (если только читаеться то на select, на обновление - update ... все как положенно по хелпу вообщем)
проблемма устанилась если группе дать правл на чтение самой таблицы.
Но помоему это всеж не правильно, ведь если пользователь(группа) не имеют прав доступа к таблицу, но оно есть у ХП и есть право ее выпольняться то все должно и так работать
или я не прав?
← →
Отвечающий (2003-04-08 13:38) [1]Возьми IBExpert и пусть он сам раздаст необходимые права на нужные таблицы процедуре
← →
Вопрошающий (2003-04-08 13:43) [2]Им тоже все проверял
продлемма всеж осталась
а доступы к таблицам описаны правильно, это точно на 100%
← →
Отвечающий (2003-04-08 13:47) [3]ну чего ж ты тогда хочешь-то?
Если все правильно 100%, то значил все работает, либо глюк в сервере.
Если глюк в сервере, то надо обновить до FB1.02
если после обновления глюк остался, писать разработчикам сервера.
Если хочешь здесь подискутировать или не на 100% уверен, то пиши сюда свою процедуру, права и ошибку.
← →
Johnmen (2003-04-08 13:53) [4]Права на доступ к объектам БД имеет/не имеет пользователь, а такого понятия, как "право объекта на доступ к др.объекту" нет...
← →
Alexandr (2003-04-08 13:58) [5]неправда твоя
GRANT SELECT,INSERT,UPDATE ON NAME TO PROCEDURE INSERTTOVAR1
← →
Johnmen (2003-04-08 14:05) [6]>Alexandr © (08.04.03 13:58)
Да, что-то лажу я прогнал...:)))
Надо бы попробовать в действии...
← →
Alexandr (2003-04-08 14:09) [7]дык, все этим пользуются.
Без это никуда...
← →
Вопрошающий (2003-04-08 14:11) [8]CREATE PROCEDURE UPP_ZEMPOL(
UPDOLAC INTEGER,
UPDOLAD INTEGER,
UPKODVIDUSER INTEGER,
UPKODUSERF INTEGER,
UPKODUSERU INTEGER,
UPPRIM VARCHAR(32000) CHARACTER SET NONE,
UPUSERAREA NUMERIC(15,4),
UPNOMOSNOVPR VARCHAR(250) CHARACTER SET NONE,
UPDATAOSNOVPR DATE,
UPOSNOVIZ VARCHAR(250) CHARACTER SET NONE,
UPOSNOVPR VARCHAR(250) CHARACTER SET NONE,
UPNOMOSNOVIZ VARCHAR(250) CHARACTER SET NONE,
UPDATAOSNOVIZ DATE,
UPDATAFAKTPR DATE,
UPDATAFAKTIZ DATE,
UPARENDADO DATE,
UPFP VARCHAR(250) CHARACTER SET NONE,
UPKATZEM INTEGER,
UPKOD INTEGER,
UPCELISP VARCHAR(250) CHARACTER SET NONE,
UPOSNPRD VARCHAR(250) CHARACTER SET NONE,
UPNOMOSNPRD VARCHAR(250) CHARACTER SET NONE,
UPDATAOSNPRD DATE,
UPOSNOVIZD VARCHAR(250) CHARACTER SET NONE,
UPNOMOSNOVIZD VARCHAR(250) CHARACTER SET NONE,
UPDATAOSNOVIZD DATE,
UPARENDADATADOK DATE,
UPARENDANOMDOK VARCHAR(250) CHARACTER SET NONE,
UPKOEF NUMERIC(4,2))
AS
DECLARE VARIABLE KODOSNPR integer;
DECLARE VARIABLE KODOSNIZ integer;
DECLARE VARIABLE KODFP integer;
DECLARE VARIABLE KODCELISP integer;
DECLARE VARIABLE KODOSNPRD integer;
DECLARE VARIABLE KODOSNIZD integer;
begin
select kodfp from formpol
where fp=:upfp
into :kodfp;
select kodcelisp from celisp
where celisp=:upcelisp
into :kodcelisp;
select kodosnov from osnov
where osnov=:uposnovpr
into :kodosnpr;
select kodosnov from osnov
where osnov=:uposnprd
into :kodosnprd;
select kodosnov from osnov
where osnov=:uposnoviz
into :kodosniz;
select kodosnov from osnov
where osnov=:uposnovizd
into :kodosnizd;
if (:upkatzem is null) then
begin
execute procedure error("
← →
Вопрошающий (2003-04-08 14:13) [9]if (:upUSERAREA is not null) then
begin
update zempol
set userarea=:upuserarea
where kodzempol=:upkod;
end
if (:upNOMOSNOVPR is not null) then
begin
update zempol
set nomosnpr=:upnomosnovpr
where kodzempol=:upkod;
end
if (:upDATAOSNOVPR is not null) then
begin
update zempol
set dataosnpr=:updataosnovpr
where kodzempol=:upkod;
end
if (:upOSNOVIZ is not null) then
begin
update zempol
set kodosniz=:kodosniz
where kodzempol=:upkod;
update zempol
set nomosniz=:upnomosnoviz
where kodzempol=:upkod;
update zempol
set dataosniz=:updataosnoviz
where kodzempol=:upkod;
update zempol
set datafaktiz=:updatafaktiz
where kodzempol=:upkod;
update zempol
set kodosnizd=:kodosnizd
where kodzempol=:upkod;
update zempol
set nomosnizd=:upnomosnovizd
where kodzempol=:upkod;
update zempol
set dataosnizd=:updataosnovizd
where kodzempol=:upkod;
end
if (:upDATAFAKTPR is not null) then
begin
update zempol
set datafaktpr=:updatafaktpr
where kodzempol=:upkod;
end
if (:upARENDADO is not null) then
begin
update zempol
set arendado=:uparendado
where kodzempol=:upkod;
update zempol
set ARENDADATADOK=:upARENDADATADOK
where kodzempol=:upkod;
update zempol
set ARENDANOMDOK=:upARENDANOMDOK
where kodzempol=:upkod;
end
if (:upFP is not null) then
begin
update zempol
set kodfp=:kodfp
where kodzempol=:upkod;
end
if (:upKATZEM is not null) then
begin
update zempol
set katzem=:upkatzem
where kodzempol=:upkod;
end
if (:upkoef is not null) then
begin
update zempol
set koef=:upkoef
where kodzempol=:upkod;
end
end
end
no permisin for read/select to table zempol
Права доступа к таблице select, update, reference
← →
Alexandr (2003-04-08 14:17) [10]слушай, давай тестовый пример, на котором ошибка воспроизводится.
Никто твою процедуру кроме тебя смотреть не будет.
Вообщем, процедуру сокращай до минимума, а то у меня на экран не помещается.
и что это
execute procedure error("
← →
Johnmen (2003-04-08 14:23) [11]>Alexandr © (08.04.03 14:09)
>дык, все этим пользуются.
Нет, не все. Не все хранят госсекреты...:)
>Без это никуда...
Это как посмотреть на проблему...
← →
Вопрошающий (2003-04-08 14:24) [12]execute procedure error("Текст ошибки!!!!! ");
это вызов процедуры формирующей ошибку
доступ к ней тоже есть
а ошибка на этой процедуре всегда если нет права группы на чтение данных таблицы
← →
Alexandr (2003-04-08 14:36) [13]Johnmen © (08.04.03 14:23)
согласен, может и не все, но без этого ограничение достпа было бы очень ограниченным.
Вопрошающий (08.04.03 14:24)
если бы у тебя все было правильно, то ошибки не было. Я же сказал укороти процедуру.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c