다중 스키마 설정과 관련하여 가능한 것이 무엇이고 오라클에서는 불가능한 것을 이해하는데 약간의 문제가 있습니다.다른 스키마의 테이블을 참조하는 Oracle 테이블
-- with user SYS connect as SYSDBA
-- note: ALL PRIVILEGES are granted for simplicity in the scope of this question.
-- real life databases would have more fine-grained grants...
create user A identified by A;
grant all privileges to A;
create user B identified by B;
grant all privileges to B;
-- with user A
create table A.REFERENCED_TABLE (
ID number(7) not null,
constraint REFERENCED_TABLE_PK primary key (ID)
);
-- with user A or B
create table B.REFERENCING_TABLE (
A_ID number(7) not null,
constraint REFERENCING_TABLE_FK
foreign key (A_ID)
references A.REFERENCED_TABLE(ID)
on delete cascade
);
그러나 위의 문은 내가 다른 스키마에서 하나의 스키마 참조 테이블에서 테이블을 만들 수있는 방법
ORA-01031: insufficient privileges
가 발생합니다의 내가 두 도식 A
및 B
있다고 가정 해 봅시다? GRANT
가 아직 누락 되었습니까? 이것은 가능한가?
감사합니다. 참조 된 테이블에 필요한 보조금을 생각하지 않았습니다. 시스템 권한에 대한 좋은 힌트. 필자의 경우, 이것은 단지 테스트 데이터베이스 일 뿐이므로'GRANT ALL PRIVILEGES'는 괜찮습니다. –
@LukasEder : 모든 특권을 부여하고 싶지 않다면,'SELECT'와'REFERENCES'를 부여하는 것으로 충분할 것입니다. –
@Ben : 나는 질문을 간결하게 유지했습니다. 두 개의 스키마에 두 개의 테이블이있는 통합 테스트 케이스 상황이 필요했기 때문에 사전 뷰를 쿼리 할 수있었습니다. Java 용 SQL 추상화 라이브러리 인 http://www.jooq.org에서이 작업을 수행하고 있습니다. 따라서 잠재적 인 "라이브"환경은이 상황에서별로 관련이 없습니다. 추가 질문으로 질문을 업데이트했습니다. –