-- Simulation
drop user a cascade;
drop user b cascade;
connect / as sysdba
create user a identified by a123;
create user b identified by b123;
grant connect, resource to a;
grant connect, resource to b;
alter user a default tablespace USERS;
alter user b default tablespace USERS;
create table a.t1 (c1 number, c2 varchar2(255));
create table b.t1 (c1 number, c2 varchar2(255));
alter table a.t1 add ( constraint t1pk primary key (c1));
alter table b.t1 add ( constraint t1pk primary key (c1));
-- On test le bazar...
connect a/a123;
-- Erreur j'ai pas les droits/visibilité...
select * from b.t1;
connect b/b123
grant select on t1 to a;
connect a/a123;
-- Wouais tout est ok...
select * from b.t1;
-- Bon la contrainte maintenant.
connect / as sysdba
grant references on b.t1 to a;
connect a/a123
alter table a.t1 add ( constraints t1fk1 foreign key (c1) references b.t1 (c1));
connect b/b123
insert into t1 values (1,'');
commit;
connect a/a123
--- Bouu
insert into t1 values (2,'');
insert into t1 values (2,'')
*
ERROR at line 1:
ORA-02291: integrity constraint (A.T1FK1) violated - parent key not found
--- Wouais...
insert into t1 values (1,'');
1 row created.
SQL> commit;
Commit complete.
Partager