powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / GRANT system privilege в 12.2
4 сообщений из 4, страница 1 из 1
GRANT system privilege в 12.2
    #39698673
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наблюдаю несоответствие документации и реального поведения у себя на 12.2.0.1.

1. В описании SYSTEM_PRIVILEGE_MAP читаем: See Oracle Database SQL Language Reference for a list of valid system privileges. Однако перечень из таблицы и из доки сильно отличается, в доках отсутствует перечисление (и описание) для:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ALTER ANY ASSEMBLY
ALTER ANY CUBE BUILD PROCESS
ALTER ANY EDITION
ALTER ANY MEASURE FOLDER
CREATE ANY ASSEMBLY
CREATE ANY CREDENTIAL
CREATE ASSEMBLY
CREATE CREDENTIAL
DEBUG CONNECT ANY
DROP ANY ASSEMBLY
EM EXPRESS CONNECT
EXECUTE ANY ASSEMBLY
EXECUTE ASSEMBLY
EXEMPT DDL REDACTION POLICY
EXEMPT DML REDACTION POLICY
EXEMPT IDENTITY POLICY
EXPORT FULL DATABASE
IMPORT FULL DATABASE
SELECT ANY CUBE BUILD PROCESS
SELECT ANY MEASURE FOLDER
SYSRAC
UNDER ANY TABLE

И это не включая те, которые указаны в п.2 далее.

2. В описании SYSTEM_PRIVILEGE_MAP читаем: PROPERTY Property flag of the privilege (auditing option): 0 - Indicates a privilege that can be granted with a SQL GRANT statement, 1 - Indicates a privilege that can only be granted using a PL/SQL package . Однако я попробовал несколько привилегий с property=1 загрантить обычной командой GRANT, и все прошло успешно. Мало того, даже в Oracle SQL Developer в интерфейсе раздачи прав пользователям нет деления по PROPERTY, все грантится через GRANT. А таких с PROPERTY=1 тоже прилично и они не описаны в доках:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ADMINISTER RESOURCE MANAGER
ALTER ANY EVALUATION CONTEXT
ALTER ANY RULE
ALTER ANY RULE SET
CREATE ANY EVALUATION CONTEXT
CREATE ANY RULE
CREATE ANY RULE SET
CREATE EVALUATION CONTEXT
CREATE RULE
CREATE RULE SET
DEQUEUE ANY QUEUE
DROP ANY EVALUATION CONTEXT
DROP ANY RULE
DROP ANY RULE SET
ENQUEUE ANY QUEUE
EXECUTE ANY EVALUATION CONTEXT
EXECUTE ANY RULE
EXECUTE ANY RULE SET
MANAGE ANY FILE GROUP
MANAGE ANY QUEUE
MANAGE FILE GROUP
READ ANY FILE GROUP



Вопрос:
Это недоработка документации или эти привилегии нельзя использовать, т.к. они только для внутренних нужд самого Оракла?
...
Рейтинг: 0 / 0
GRANT system privilege в 12.2
    #39698812
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. SYSRAC -- из оперы SYSDBA/SYSOPER/SYSBACKUP/SYSDG/SYSKM, опционален и описан соответственно в Installation Guide/Security Guide

Некоторые привилегии тупо введены для поддержания стандарта (UNDER ANY TABLE) или для использования в будущем (EXPORT/IMPORT FULL DATABASE), но сейчас не используются. Подозреваю, что это относится и ко всяким ASSEMBLY (введены еще в 11g) и CREDENTIAL

Или создавались сразу комплектом для будущего расширения команд -- CREATE / DROP EDITION есть, а ALTER EDITION пока нет, но привилегия есть (появилась вместе с DROP / CREATE). Наверняка и для OLAP-овских привилегий тоже самое

Некоторые введены для использования в будущем и [уже] используются только с определенных версий (EXEMPT DML/DDL REDACTION POLICY) как подмножество более общей (EXEMPT REDACTION POLICY), и, видимо, еще не описаны, а может будут описаны только в соответствующем продукте (DBMS_REDACT), а может опять от них откажутся -- заменят на затычку

А, вообще, судя по количеству новых фич, которые появляются в каждой версии, там просто не успевает обновляться документация
На металинке есть Bug 14579466 : NEED DOCUMENTATION ON "EXEMPT IDENTITY POLICY" PRIVILEGE, последнее обновление в 2013 году: Status: 99 - Closed, Documentation Bug Fixed, Fixed in Product Version: 12.1
Но ведь врут!

2. Скажем так -- их нет смысла назначать вручную. Например, они не перенесутся через exp[dp]/imp[dp], они не видны через DBMS_METADATA и работать, скорее всего, они будут не так, как ожидается
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> create user u1 identified by u1;

User created.

SQL> grant create session, create any cluster, CREATE EVALUATION CONTEXT to u1;

Grant succeeded.

SQL> select * from dba_sys_privs where grantee='U1';

GR PRIVILEGE                                ADM COM
-- ---------------------------------------- --- ---
U1 CREATE SESSION                           NO  NO
U1 CREATE EVALUATION CONTEXT                NO  NO
U1 CREATE ANY CLUSTER                       NO  NO

SQL> set long 10000
SQL> select dbms_metadata.get_granted_ddl('SYSTEM_GRANT', 'U1') from dual;

DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','U1')
--------------------------------------------------------------------------------

  GRANT CREATE ANY CLUSTER TO "U1"
  GRANT CREATE SESSION TO "U1"


SQL> 

Если сделать exp full=y, то в файле будутimp full=y show=y
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 "CREATE USER "U1" IDENTIFIED BY VALUES '3E81B724A296E296' DEFAULT TABLESPACE"
 " "USERS" TEMPORARY TABLESPACE "TEMP""
 "GRANT CREATE SESSION TO "U1""
 "GRANT CREATE ANY CLUSTER TO "U1""
 "SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATIO"
 "N_CONTEXT_OBJ, '"U1"',FALSE);"
 "ALTER USER "U1" DEFAULT ROLE ALL"
А если назначить через PL/SQL (как положено)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
SQL> drop user u1;

User dropped.

SQL> create user u1 identified by u1;

User created.

SQL> grant create session, create any cluster to u1;

Grant succeeded.

SQL> exec DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_EVALUATION_CONTEXT, 'U1', FALSE)

PL/SQL procedure successfully completed.

SQL> select * from dba_sys_privs where grantee='U1';

GR PRIVILEGE                                ADM COM
-- ---------------------------------------- --- ---
U1 CREATE ANY EVALUATION CONTEXT            NO  NO
U1 CREATE SESSION                           NO  NO
U1 CREATE ANY CLUSTER                       NO  NO

SQL> set long 10000
SQL> select dbms_metadata.get_granted_ddl('SYSTEM_GRANT', 'U1') from dual;

DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','U1')
--------------------------------------------------------------------------------

  GRANT CREATE ANY CLUSTER TO "U1"
  GRANT CREATE SESSION TO "U1"


SQL> 

То будет перенесена правильная привилегияавтор
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 "CREATE USER "U1" IDENTIFIED BY VALUES '3E81B724A296E296' DEFAULT TABLESPACE"
 " "USERS" TEMPORARY TABLESPACE "TEMP""
 "GRANT CREATE SESSION TO "U1""
 "GRANT CREATE ANY CLUSTER TO "U1""
 "SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_EVALU"
 "ATION_CONTEXT, '"U1"',FALSE);"
 "ALTER USER "U1" DEFAULT ROLE ALL"
DBMS_RULE_ADMPrivilegeDescriptionSYS.DBMS_RULE_ADM.CREATE_ANY_EVALUATION_CONTEXTCreate a new evaluation context in any schemaSYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJCreate a new evaluation context in the grantee's schemaИ еще их нельзя использовать в команде AUDIT (использовать-то можно, но бесполезно) (
...
Рейтинг: 0 / 0
GRANT system privilege в 12.2
    #39698816
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SQL> create user u1 identified by u1;

User created.

SQL> grant create session, create any cluster, CREATE EVALUATION CONTEXT to u1;
-- а должно было быть
-- grant create session, create any cluster, CREATE ANY EVALUATION CONTEXT to u1;
--

...Упс, я тут запутался в копи-пастах
И похоже, как раз старый exp/imp перенесет правильно, а Data Pump нет (ну правильно, он же юзает DBMS_METADATA)
Причем, в независимости от того, как назначать
...
Рейтинг: 0 / 0
GRANT system privilege в 12.2
    #39702324
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / GRANT system privilege в 12.2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]