Предоставить ресурс пользователю для создания таблицы - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь дать привилегии пользователю БД и хочу разрешить пользователю создавать таблицы. Проверяя привилегию «RESOURCE», она содержит следующее:

SELECT privilege FROM dba_sys_privs WHERE grantee = 'RESOURCE';

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

Если я вручную предоставлю «CREATE TABLE» для User1вместо этого это работает. Почему это так?

GRANT CREATE TABLE TO User1;

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Вам нужно будет переподключиться с вашим пользователем, как только ему будет предоставлено resource грант (от пользователя sys), так как ваш current session не может идентифицировать вновь предоставленный грант (ресурс).

Ура !!

0 голосов
/ 21 октября 2019

Как ответил Tejash, просто нужно было повторно подключить пользователя.

...