Criação de role via package

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

Informações do Ambiente:
* Versão do Oracle: 11g
* Sistema Operacional:

Bom dia pessoal,

Seguinte, estou criando uma role no banco de dados. Crio ela manualmente com o usuário e ele é criada com sucesso.

Mas preciso criar esta role de dentro de uma package. Quando executo a package com este mesmo usuário tentando criar a role me apresenta o seguinte erro:

Selecionar tudo

ora-01031: privilégios insuficientes
Abaixo segue comando que cria a role dentro da package:

Selecionar tudo

BEGIN
        EXECUTE IMMEDIATE 'create role ROLE_' || p_des_sigla || '_' || P_COD_PROGRAMA;

EXCEPTION
        WHEN OTHERS THEN
          IF ABS(SQLCODE) <> 01921 THEN --ROLE JÁ EXISTE, SOMENTE TRATAR ERRO CASO SEJA DIFERENTE DISSO
            p_des_erro := 'Erro ao criar role: ROLE_' || wr_nom_owner || '_' || P_COD_PROGRAMA ||
                          ' erro=> ' || ABS(SQLCODE) || ' : ' || SQLERRM;
          END IF;                
      END;    
desde já agradeço a ajuda de todos.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

O seu usuário não tem privilégio pra criar roles,

peça ao um DBA para te dar..

Selecionar tudo

grant create role to seuUsuario;
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

Galera consegui resolver meu problema,

Falatavam alguns system privileges.

Liberando os mesmos consegui efetuar as transações necessárias.

Grato.
Responder
  • Informação