Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle中创建唯一/主键约束需要什么权限?_Sql_Oracle_Constraints_Oracle12c_Privileges - Fatal编程技术网

Sql 在Oracle中创建唯一/主键约束需要什么权限?

Sql 在Oracle中创建唯一/主键约束需要什么权限?,sql,oracle,constraints,oracle12c,privileges,Sql,Oracle,Constraints,Oracle12c,Privileges,虽然这感觉像是问了一个非常基本的问题而没有做太多的研究,但在Oracle论坛、AskTom、Oracle文档和软件中进行了大量搜索后,将这个问题发布在这里。我试图缩小创建唯一键约束或主键约束所需的权限。这是因为尝试创建具有唯一/主键的简单表失败,权限不足 SQL> connect sys/syspass Connected. SQL> show user USER is "SYS" SQL> grant create session, create table, create

虽然这感觉像是问了一个非常基本的问题而没有做太多的研究,但在Oracle论坛、AskTom、Oracle文档和软件中进行了大量搜索后,将这个问题发布在这里。我试图缩小创建唯一键约束或主键约束所需的权限。这是因为尝试创建具有唯一/主键的简单表失败,权限不足

SQL> connect sys/syspass
Connected.
SQL> show user
USER is "SYS"
SQL> grant create session, create table, create any index, 
     create indextype, unlimited tablespace to tuser1;

Grant succeeded.

SQL> 
SQL> connect tuser1/tuserp1
Connected.
SQL> create table tab1 (
atomic          int unique,
symbol          varchar2(2) unique,
name            char(15)
);  2    3    4    5  
create table tab1 (
*
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> create table tab2 (empno number, name varchar2(30), sal number,
constraint pk_tab2 primary key (empno));  2  
create table tab2(empno number, name varchar2(30), sal number,
*
ERROR at line 1:
ORA-01031: insufficient privileges

SQL> 

在这种情况下,请帮助我查找可能丢失的权限好吗?

授予
资源
必须解决此问题:

SQL> conn tuser1/tuserp1
Connected.
SQL> create table tab2 (empno number, name varchar2(30), sal number,
constraint pk_tab2 primary key (empno));    
create table tab2 (empno number, name varchar2(30), sal number,
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> conn / as sysdba
Connected.
SQL> grant resource to hr;

Grant succeeded.

SQL> conn tuser1/tuserp1
Connected.
SQL> create table tab2 (empno number, name varchar2(30), sal number,
constraint pk_tab2 primary key (empno));    

Table created.

对于这个问题,您可能会找到更好的听众@dba.stackexchange.com您是否能够在没有任何约束的情况下创建表?尝试并在此处发布答案-无论哪种方式都会有帮助。@mathguy是的,我能够创建tableYes,有了资源,它也遇到了同样的问题。@learningloop我在我的媒体中测试过,没有问题。(当我
从myschema中撤销资源时
)创建表DDL在第1行显示
错误:ORA-01031:权限不足
。感谢您验证您的解决方案。最终缩小了问题的原因。dba通过禁止除
rely
约束以外的约束,在数据库上设置了概要文件。此外,还发现
唯一
键所需的权限为。很抱歉造成了混乱。本想删除此问题,但希望传达调查结果。@learningloop也谢谢。无需删除我认为,为了
资源
:)自Oracle 11以来,不鼓励使用
资源
角色