Ora9: procedury a prava pres role?
Michal Dobes
dobes na tesnet.cz
Pondělí Prosinec 16 22:05:15 CET 2002
Zdarec,
kolega tady bojuje s procedurami c Ora9 a nejak mu to nechce
pracovati dle jeho ideii. Please, ma k tomu nekdo nejaky napad?
1)Mam uzivatelov uziv1 a uziv2
2)Mam definovane tabulky uziv1.tabA uziv2.tabB
3)Napisem proceduru ktora saha na tabulky uziv1 i uziv2:
create or replace procedure uziv1.test
AS
begin
declare
f utl_file.file_type;
cece number;
begin
f:=utl_file.Fopen('e:\stats','blabla.txt,'w',32767);
-- samozrejme v init.ora mam UTL_FILE_DIR=e:\stats
select count (*) into cece from uziv1.tabA;
utl_file.put_line(f,'Hlaska 1:'||To_Char(cece));
select count (*) into cece from uziv2.tabB;
utl_file.put_line(f,'Hlaska 2:'||To_Char(cece));
utl_file.Fflush(f);
utl_file.Fclose(f);
end;
end;
4)Proceduru do oracle nabucham ako uziv1.
5)procedura je zamietnuta ako chybna, pretoze podla ORA uziv2.tabB
neexistuje.
Skusam uziv1 povolit select na uziv2.tabB a funguje to len ked to
povolim priamo uziv1.
Pokial je vsak nepovolim MENOVITE uziv1 ale napriklad uziv1 spravim DBA
alebo
select povolim roli role1 a uziv1 i uziv2 su clenmi role1, tak to
nefunguje.
Zda sa, ze proste pravo musi byt udelene priamo len uziv1 a nestaci ked
je clenom spravnej role.
6)vytvorim ako system JOB nieco co vola tu nasu proceduru:
begin
uziv1.test;
end;
7)Zase ako v bode 5) musi byt na uzivatela system grantovane pravo
execute, nestaci DBA.
Inak ten JOB nieje schopny pouzit uziv1.test.
Co prava roli na procedury nefunguju?
Pomoooc.....
Další informace o konferenci Test