- Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 8 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
25 de junho de 2008 às 12:02 am #82078
Ivandré Santos
ParticipanteOla 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.25 de junho de 2008 às 6:02 am #82079fneukirchen
ParticipanteMaverick,
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
25 de junho de 2008 às 4:58 pm #82081Ivandré Santos
ParticipanteBom 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”26 de junho de 2008 às 5:13 pm #82087Ivandré Santos
ParticipanteObrigado pela atenção, encontrei o problema.
Faltava permissão de execução na $ORACLE_HOME.Abraços.
26 de junho de 2008 às 11:01 pm #82090Marcio68Almeida
ParticipanteBoa 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.30 de junho de 2008 às 5:58 pm #82109Ivandré Santos
ParticipanteAcaso esta dica é por motivo de segurança?
Obrigado.30 de junho de 2008 às 6:27 pm #82112Marcio68Almeida
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…
2 de julho de 2008 às 12:25 am #82133Rodrigo Almeida
ParticipanteConcordo 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
-
AutorPosts
- Você deve fazer login para responder a este tópico.