问题现象
一个 Oracle 租户下,有两个用户 user1 和 user2 ,跨用户创建外键约束报错没有权限 ORA-01031: insufficient privileges。
user1 中建表。
obclient> create table t1(id int); Query OK, 0 rows affected (0.029 sec)user2 中建表。
obclient > create table t2 (id int, id_t1 int, foreign key(id_t1) refrences user1.t1(id)); ORA-01031: insufficient privileges
问题原因
用户 user2 缺少创建外键约束的权限。
适用版本
OceanBase 数据库 V3.x 版本。
解决方法
授予创建外键约束的权限,执行如下命令。
obclient > grant references on user1.t1 to user2;
Query OK, 0 rows affected (0.021 sec)
相关信息
OceanBase 数据库 V2.x 版本不支持跨用户创建外键约束,会报错。
ORA-00600: internal error code, arguments: -4007, The child and parent tables in different databases not supported