首先,我不是DataBaseAdministrator,但DBA对此没有帮助...
我在Oracle数据库上创建了一些表
我已经授予了这些权限,但我仍然有错误。
例如我有这个:
create table ABCD.ANNEE (
ANNEE CHAR(20) not null,
constraint PK_ANNEE primary key (ANNEE)
);
错误状态,我没有约束的权限。
但是,当我发布这个:
create table ANNEE (
ANNEE CHAR(20) not null,
constraint PK_ANNEE primary key (ANNEE)
);
没有用户/架构,我没有权限错误...
我告诉DBA推出了这笔补助金:
GRANT REFERENCES ANY TABLE TO USER
有具体要求吗?我知道我的用户有一个角色,并且无法将REFERENCES权限添加到角色,所以我需要将其分开。
我怎样才能有权在用户ABCD.ANNEE上创建约束,pk,fk?
发布于 2018-12-08 10:05:08
最简单的方法是作为ABCD用户连接并在那里做所有事情。作为所有者(您使用有效凭据连接,对吗?),您可以毫无问题地执行此类操作。
由于您似乎没有连接为ABCD,因此您需要获得以下权限:
CREATE ANY TABLE, CREATE ANY INDEX
为了做到这一点。这是一个例子:我的数据库中有两个用户,SCOTT和MIKE。连接为SCOTT,我想在MIKE的模式中创建一个表,该表应该具有主键约束。
SQL> show user
USER is "SCOTT"
SQL> create table mike.test(id number, constraint pkte primary key (id));
create table mike.test(id number, constraint pkte primary key (id))
*
ERROR at line 1:
ORA-01031: insufficient privileges
这不起作用(正如你已经注意到的那样),所以我将首先授予CREATE ANY TABLE并再试一次:
SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> grant create any table to scott;
Grant succeeded.
SQL> connect scott/tiger@xe
Connected.
SQL> create table mike.test(id number, constraint pkte primary key (id));
create table mike.test(id number, constraint pkte primary key (id))
*
ERROR at line 1:
ORA-01031: insufficient privileges
让我们授予CREATE ANY INDEX,因为创建主键也会创建索引。
SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> grant create any index to scott;
Grant succeeded.
SQL> connect scott/tiger@xe
Connected.
SQL> create table mike.test(id number, constraint pkte primary key (id));
Table created.
这样就成功啦
https://stackoverflow.com/questions/-100003029
复制相似问题