Ao tentar adicionar uma foreign key (FK) entre duas tabelas, apresentou o erro ORA-01031 insufficient privileges, para resolver este erro simples, basta executar o grant nas tabelas envolvidas.
ORA-01031 ao criar a FK FK_ID_AGENDAMENTO:
ALTER TABLE PORTAL.TB_ATENDIMENTO ADD CONSTRAINT FK_ID_AGENDAMENTO FOREIGN KEY (ID_AGENDAMENTO) REFERENCES PORTAL_AD.TB_AGENDAMENTO (ID_AGENDAMENTO);
Grant references para correção:
GRANT REFERENCES ON PORTAL.TB_ATENDIMENTO TO PORTAL_AD;
GRANT REFERENCES ON PORTAL_AD.TB_AGENDAMENTO TO PORTAL;
Grant references em todas as tabelas dos esquemas (‘DBAMV’,’DBASGU’,’MVINTEGRA’,’DBATUALIZA’) para o esquema DBAPS:
SET SERVEROUTPUT ON
BEGIN
FOR PERMISSAO IN (
SELECT 'GRANT REFERENCES ON '||'"'||OWNER||'"'||'.'||'"'||OBJECT_NAME||'"'|| ' TO DBAPS' DDL
FROM DBA_OBJECTS WHERE OWNER IN ('DBAMV','DBASGU','MVINTEGRA','DBATUALIZA') AND OBJECT_TYPE='TABLE'
)
LOOP
DBMS_OUTPUT.PUT_LINE(PERMISSAO.DDL||' EXECUTED.');
EXECUTE IMMEDIATE PERMISSAO.DDL;
END LOOP;
END;
/