为什么我的Oracle SQL用户即使拥有创建表的权限也不能创建表?

为什么我的Oracle SQL用户即使拥有创建表的权限也不能创建表?,oracle,create-table,Oracle,Create Table,为什么Oracle SQL不允许被授予创建表权限的用户创建表 如果我跑 从会话中选择* 当以用户身份连接时,我可以验证我是否具有创建表和创建任意表的权限 但是,当我尝试以用户身份创建表时: create table Course( CId int GENERATED BY DEFAULT AS IDENTITY, CName VARCHAR2(50) ); 我感到恐惧 Error starting at line : 2 in command - create table c##FACULTY

为什么Oracle SQL不允许被授予创建表权限的用户创建表

如果我跑

从会话中选择*

当以用户身份连接时,我可以验证我是否具有创建表和创建任意表的权限

但是,当我尝试以用户身份创建表时:

create table Course(
CId int GENERATED BY DEFAULT AS IDENTITY,
CName VARCHAR2(50)
);
我感到恐惧

Error starting at line : 2 in command -
create table c##FACULTYDB.Course(
FId int GENERATED BY DEFAULT ON NULL AS IDENTITY,
FName VARCHAR2(50) not null
)
Error report -
ORA-01031: insufficient privileges
01031. 00000 -  "insufficient privileges"
*Cause:    An attempt was made to perform a database operation without
           the necessary privileges.
*Action:   Ask your database administrator or designated security
           administrator to grant you the necessary privileges

当我运行与SYS相同的createtable代码时,它工作得很好。有没有人知道是什么导致了这种情况的发生???

要创建具有标识列的表,您还必须具有创建序列权限

例如,如果管理员创建此用户:

create user test_user identified by test_user;
grant create session, create table, create any table to test_user;
对于该用户,此语句将失败:

TEST_USER@orclpdb> create table Course(
  2  CId int GENERATED BY DEFAULT AS IDENTITY,
  3  CName VARCHAR2(50)
  4  );
create table Course(
*
ERROR at line 1:
ORA-01031: insufficient privileges
但在管理员运行此授权后:

grant create sequence to test_user;
用户将能够创建表:

TEST_USER@orclpdb> create table Course(
  2  CId int GENERATED BY DEFAULT AS IDENTITY,
  3  CName VARCHAR2(50)
  4  );

Table created.

创建表格课程如何导致创建表格cFACULTYDB.Faculty的可怕错误?您是否以用户cFACULTYDB的身份连接?您说您正在尝试创建表格课程,但显示了表格Faculty的错误。这是一个令人困惑的问题。请编辑您的问题并澄清这些不一致之处。谢谢。更正以反映正确的错误。