Запрос о привилегиях в oracle - PullRequest
0 голосов
/ 13 апреля 2020

Как вызвать привилегии для создания представления в oracle 10g Enterprise Edition от пользователя Скотта? При попытке создать представление для существующей таблицы

появляется сообщение об ошибке «Недостаточно прав доступа».

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

TL / DR: вам нужна системная привилегия CREATE VIEW и привилегия объекта SELECT для связанной таблицы.

Фактически любой пользователь, которому была предоставлена ​​опция CREATE VIEW с параметром admin, может предоставить CREATE VIEW, включая пользователей SYSDBA и SYSTEM, но также любой пользователь, имеющий роль администратора базы данных. Чтобы создать представление для таблицы, вам также обычно требуется привилегия SELECT для таблицы.

Пример с CREATE VIEW WITH ADMIN OPTION:

SQL> --
SQL> show user;
USER is "SYS"
SQL> --
SQL> create user scott identified by "tiger";

User created.

SQL> grant create session to scott;

Grant succeeded.

SQL> --
SQL> create user myadmin identified by "myadmin" quota unlimited on users;

User created.

SQL> grant create session to myadmin;

Grant succeeded.

SQL> grant create table to myadmin;

Grant succeeded.

SQL> grant create view to myadmin with admin option;

Grant succeeded.

SQL> --
SQL> connect myadmin/myadmin
Connected.
SQL> grant create view to scott;

Grant succeeded.

SQL> create table t(x int);

Table created.

SQL> insert into t values(4);

1 row created.

SQL> commit;

Commit complete.

SQL> grant select on t to scott;

Grant succeeded.

SQL> --
SQL> connect scott/tiger
Connected.
SQL> create view v as select * from myadmin.t;

View created.

SQL> select * from v;

     X
----------
     4
0 голосов
/ 13 апреля 2020

Чтобы предоставить привилегии для создания представления, вам нужно предоставить CREATE VIEW пользователю Scott от пользователя sysdba:

GRANT CREATE ANY VIEW TO Scott;
-- OR --
GRANT CREATE VIEW TO Scott; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...