Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
3-76864
Jaxtor
2003-04-08 14:02
2003.04.24
Подтверждение транзакции в InterBase


6-77045
Programist21
2003-02-20 16:21
2003.04.24
Post в IdHTTP


3-76851
Abrams
2003-04-08 09:10
2003.04.24
BDE


1-76880
GeorgeM
2003-04-14 17:19
2003.04.24
Ruler


3-76771
Clickmaker
2003-04-04 13:09
2003.04.24
deadlock на MS SQL 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский