Pular para o conteúdo
  • Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 8 meses atrás por Rodrigo Almeida.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #82078
    Ivandré Santos
    Participante

      Ola pessoal!
      Montei meu banco teste com Oracle 9.2.0.4 x86_64, esta rodando perfeitamente, inclusive o banco esta separado da aplicação, mas qnd montei uma shell para efetuar exportação automaticamente me retornou erro “EXP-00056: ORACLE error 12546 encountered
      ORA-12546: TNS:permission denied
      EXP-00000: Export terminated unsuccessfully” coloquei a Shell no Crontab para rodar com o ROOT.
      Obrigado.

      #82079
      fneukirchen
      Participante

        Maverick,

        Pelo exposto, apenas o usuário Oracle tem privilégio de execute no binário do Oracle. Para confirmar isto seria legal você postar o resultado do comando “ls -l $ORACLE_HOME/bin/oracle”.

        Além disso, pediria também que você mostrasse o comando que faz a conexão para diferenciarmos se é uma conexão via Listener, IPC ou TCP/IP.

        Postar o conteúdo do SQLNET.ORA auxiliará mostrando os métodos de nomeação disponíveis e a ordem de utilização (NAMES.DIRECTORY_PATH).

        Naturalmente, um atalho possível para contornar o problema é rodar o script com o usuário Oracle.

        Até breve,

        F. Neukirchen

        #82081
        Ivandré Santos
        Participante

          Bom dia!
          Realmente testando o ls -l no $ORACLE_HOME, deu erro q não encontrou;
          o comando é este:
          “export ORACLE_BASE=/home/oracle
          export ORACLE_HOME=$ORACLE_BASE/product/9.2.0.4.0
          export LD_LIBRARY_PATH=$ORACLE_HOME/lib
          export ORACLE_SID=tst
          export PATH=$PATH:$ORACLE_HOME/bin
          exp system/tst3p file=/tst/backup/logix1800.exp full=y direct=y log=/tst/backup/log_exp.log”
          A conexão é via Listener;
          Não configurei o sqlnet.ora somente listener.ora e o tnsnames.ora.
          o conteudo do sqlnet.log :
          “Fatal NI connect error 12546, connecting to:
          (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/home/oracle/product/9.2.0.4.0/bin
          /oracle)(ARGV0=oracletst)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))
          )’)(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=charger)(USER=root))))

          VERSION INFORMATION:
          TNS for Linux: Version 9.2.0.4.0 – Production
          Oracle Bequeath NT Protocol Adapter for Linux: Version 9.2.0.4.0 – Produ
          ction
          Time: 24-JUN-2008 14:10:13
          Tracing not turned on.
          Tns error struct:
          nr err code: 0
          ns main err code: 12546
          TNS-12546: TNS:permission denied
          ns secondary err code: 12560
          nt main err code: 516
          TNS-00516: Permission denied
          nt secondary err code: 13
          nt OS err code: 0”

          #82087
          Ivandré Santos
          Participante

            Obrigado pela atenção, encontrei o problema.
            Faltava permissão de execução na $ORACLE_HOME.

            Abraços.

            #82090
            Marcio68Almeida
            Participante

              Boa tarde.
              Não use o root para iniciar nenhum processo específico, se for apache, crie um usuário apache que irá executar o aplicativo, o mesmo vale para proxy, bancos de dados, etc…
              Mesmo processos de backup, nunca use o root.

              #82109
              Ivandré Santos
              Participante

                Acaso esta dica é por motivo de segurança?
                Obrigado.

                #82112
                Marcio68Almeida
                Participante

                  [quote=”Maverick”:10lifc4k]Acaso esta dica é por motivo de segurança?
                  Obrigado.[/quote]

                  Sim, não se deve usar o superusuário para iniciar nenhum tipo de processo, pois esse serviço pode ser invadido por um desocupado e, de posse do usuário root, toda a sua máquina está vulnerável…

                  Também há pessoas que colocam seu usuário autenticando diretamente para o root sem precisar usar senha, é outro grande erro, é mais prático, mas não é confiável…

                  #82133
                  Rodrigo Almeida
                  Participante

                    Concordo com o Marico.

                    Nunca utilize o ROOT ou qualquer outro usuário do SO com ID 0.

                    Como sua tarefa é realizar um EXP (backup lógico) do banco de dados, então, agende a tarefa usando o usuário ORACLE, apenas ele. Já que no próprio perfil do usuário, já estará as variáveis de ambiente definidas.

                    Abraços,

                    Rodrigo Almeida

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.