sql >> Databáze >  >> RDS >> Oracle

Oracle uděluje oprávnění ke spuštění

Uvnitř balíčků jsou oprávnění udělená nepřímo (prostřednictvím role) zrušena. Musíte udělit potřebná oprávnění na podkladové objekty přímo na účet; příklad:

conn sys/[email protected] as sysdba
create user A identified by A;
grant connect, dba to A;
conn A/[email protected]
create table test_tab(pk number);

conn sys/[email protected] as sysdba
create user B identified by B;
grant connect, dba to B;
conn B/[email protected]
select * from A.test_tab; -- this works

create or replace procedure do_it as
l_cnt pls_integer;
begin
  select count(*) into l_cnt from A.test_tab; -- error on compile
end;

V tomto příkladu potřebujete

grant select on A.test_tab to B;

aby to fungovalo (nezáleží na tom, zda používáte dynamické nebo statické SQL).



  1. Je dobrým zvykem používat ContentProvider ke zpracování databázových operací?

  2. Získejte RowId z QueryChangeDescription

  3. Vložení hexadecimální hodnoty do MySQL

  4. Jak spojit výsledky dvou dotazů do jedné datové sady