Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Права для dbms_redefinition / 9 сообщений из 9, страница 1 из 1
11.09.2018, 12:00
    #39700838
роман23t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
Парни привет.

Есть необходимость под своей учеткой на 11 версии оракла переделать табличку на секционированную. Для сохранения всех прав зависимостей, да и просто для удобства использую для таких дел dbms_redefinition.

Столкнулся с нехваткой прав. В доке пишут https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables007.htm#ADMIN11678 , что нужно следующее:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
EXECUTE_CATALOG_ROLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
LOCK ANY TABLE
SELECT ANY TABLE
CREATE ANY TRIGGER
CREATE ANY INDEX




Все это у моего пользователя я вижу в dba_role_privs и dba_sys_privs соответственно. Сам скрипт с dbms_redefinition запускаю в командном окне, так что версия про то, что напрямую надо грантовать(а не через роль), если юзать в процедуре, тут не подходит.

Так же на форуме нашел, что кому то помог в подобной ситуации grant select any dictionary. Дал тоже. Но не помогло

Что посоветуете?
...
Рейтинг: 0 / 0
11.09.2018, 12:19
    #39700855
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23t,

точный текст ошибки какой?
...
Рейтинг: 0 / 0
11.09.2018, 12:21
    #39700858
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23t,

ошибка возникает в какой момент? на каком шаге?
...
Рейтинг: 0 / 0
11.09.2018, 12:22
    #39700859
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23t,

показывайте запускаемый скрипт, полный текст ошибки и точную версию оракле.
...
Рейтинг: 0 / 0
11.09.2018, 12:58
    #39700883
роман23t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

В тестовой среде под учеткой с широкими правами все работает.

Код: 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.
declare
  nr_errors    pls_integer;
  v_tab        varchar2(60);
  v_tab_iterim varchar2(60);
  v_owner      varchar2(60);
begin
  v_tab        := 'TEST_TAB'; 
  v_tab_iterim := 'TEST_TAB_TEMP'; 
  v_owner      := 'SCHEMA'; 
  
  dbms_redefinition.abort_redef_table(uname => v_owner, orig_table => v_tab, int_table    => v_tab_iterim);
  dbms_redefinition.can_redef_table  (uname => v_owner, tname      => v_tab, options_flag => dbms_redefinition.cons_use_pk);
  dbms_redefinition.start_redef_table(uname        => v_owner,
                                      orig_table   => v_tab,
                                      int_table    => v_tab_iterim,
                                      options_flag => dbms_redefinition.cons_use_pk);
  dbms_redefinition.copy_table_dependents(uname            => v_owner, 
                                          orig_table       => v_tab,
                                          int_table        => v_tab_iterim,
                                          copy_indexes     => 1,
                                          copy_triggers    => true,
                                          copy_constraints => true,
                                          copy_privileges  => true,
                                          ignore_errors    => true,
                                          num_errors       => nr_errors,
                                          copy_statistics  => true);
  dbms_redefinition.sync_interim_table(uname => v_owner, orig_table => v_tab, int_table => v_tab_iterim);
  dbms_redefinition.finish_redef_table(uname => v_owner, orig_table => v_tab, int_table => v_tab_iterim);  
end;
/



Текст:

ORA-06550: Строка 11, столбец 3:
PLS-00201: идентификатор 'DBMS_REDEFINITION' должен быть объявлен
...
Рейтинг: 0 / 0
11.09.2018, 13:05
    #39700887
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23t,

что показывает запрос:
Код: plsql
1.
select * from dba_objects where object_name = 'DBMS_REDEFINITION'

???
...
Рейтинг: 0 / 0
11.09.2018, 13:18
    #39700895
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23t
Код: plsql
1.
EXECUTE_CATALOG_ROLE

роман23tPLS-00201: идентификатор 'DBMS_REDEFINITION' должен быть объявлен
Код: plsql
1.
set role all;
...
Рейтинг: 0 / 0
11.09.2018, 13:33
    #39700906
роман23t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
Elic
Код: plsql
1.
set role all;



Спасибо, буду знать.
...
Рейтинг: 0 / 0
11.09.2018, 13:40
    #39700911
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права для dbms_redefinition
роман23tбуду знать.ElicSTFF Default Role AND GRANT
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Права для dbms_redefinition / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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