ORA-01031 insufficient privileges add FK

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;
/
search previous next tag category expand menu location phone mail time cart zoom edit close