Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle дава разрешение за изпълнение

Вътре в пакетите привилегиите, предоставени индиректно (чрез роля), отпадат. Трябва да предоставите необходимите привилегии за основните обекти директно към сметката; пример:

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;

В този пример имате нужда от

grant select on A.test_tab to B;

за да работи (няма значение дали използвате динамичен или статичен SQL).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да предам параметър на t-sql скрипт?

  2. Задействане на промяна на сесията?

  3. PL/SQL:числова или стойностна грешка:символен низов буфер е твърде малък %ROWTYPE

  4. Добавена дата и модифицирана дата за одит на таблица на Oracle

  5. разпределение на sql плащания