sql >> Databasteknik >  >> RDS >> Oracle

Oracle ger tillstånd för exekvering

Inuti paket tas privilegier som beviljats ​​indirekt (via en roll) bort. Du måste ge nödvändiga privilegier på de underliggande objekten till kontot direkt; exempel:

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;

I det här exemplet behöver du en

grant select on A.test_tab to B;

för att få det att fungera (det spelar ingen roll om du använder dynamisk eller statisk SQL).



  1. Hur man väljer poster från de senaste 24 timmarna med PostgreSQL

  2. Hur kan jag tvinga en underfråga att endast returnera en rad?

  3. JPA TemporalType.Datum ger fel datum

  4. MariaDB JSON_VALID() Förklarad