sql >> Database teknologi >  >> RDS >> Oracle

Oracle giver tilladelse til at udføre

Inde i pakker bortfalder privilegier givet indirekte (via en rolle). Du skal give de nødvendige privilegier på de underliggende objekter til kontoen direkte; eksempel:

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 dette eksempel skal du bruge en

grant select on A.test_tab to B;

for at få det til at fungere (det er lige meget om du bruger dynamisk eller statisk SQL).



  1. Mysql ERROR 1241 (21000):Operand skal indeholde 1 kolonne(r)

  2. Sådan opretter du en procedure inde i en pakke i Oracle

  3. PostgreSQL:en gyldig variabel tildelingsprøve?

  4. Sådan rettes Microsoft SQL Server Error 926? - Løst