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 Databases