向用户授予资源以创建表

时间:2019-10-21 03:20:21

标签: oracle squirrel-sql

我正在尝试为db用户赋予特权,并希望允许该用户创建表。检查“ RESOURCE”特权,它包含以下内容:

SELECT privilege FROM dba_sys_privs WHERE grantee = 'RESOURCE';

资源

CREATE TABLE
CREATE OPERATOR
CREATE TYPE
CREATE CLUSTER
CREATE TRIGGER
CREATE INDEXTYPE
CREATE PROCEDURE
CREATE SEQUENCE

正如我指出的那样,其中包括CREATE TABLE,我假设可以向我的用户授予RESOURCE,并且该用户将能够在自己的模式中创建表。

GRANT RESOURCE TO User1;

在User1上,我运行以下命令:

    CREATE TABLE testable (
        sessionID varchar2(32 char) not null,
        attributeA varchar(10) ,
        attributeB varchar2(50)
    );

但是我得到了:

Error: ORA-01031: insufficient privileges

SQLState:  42000
ErrorCode: 1031

如果我改为手动向User1授予“ CREATE TABLE”,则它可以工作。为什么会这样?

GRANT CREATE TABLE TO User1;

2 个答案:

答案 0 :(得分:0)

正如Tejash回答的那样,只需要重新连接用户即可。

答案 1 :(得分:0)

一旦获得resource(来自系统用户)的授权,您就需要与用户重新连接,因为您的current session无法识别新授予的授权(资源)

干杯!