AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 124191
Accepted
RBarryYoung
RBarryYoung
Asked: 2015-12-21 13:42:40 +0800 CST2015-12-21 13:42:40 +0800 CST 2015-12-21 13:42:40 +0800 CST

Por que "Como SYSDBA" não funciona no SQL Developer?

  • 772

Sou um desenvolvedor/consultor DBA do SQL Server que está ajudando um cliente que recentemente perdeu seu DBA Oracle. Eu desenvolvi no Oracle, mas não muito trabalho de DBA, e não em ambientes multi-homed como este.

O problema: consigo conectar usando "SYS As SYSDBA" do SQL Plus, mas não do SQL Developer no mesmo sistema. No entanto, posso me conectar usando "sistema" com SQL Plus ou SQL Developer.

Detalhes:

Neste servidor, na minha conta de administrador do Windows (também inserida como administrador do servidor no Oracle Admin Asst.), este comando do DOS funciona:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus /@MyDb as sysdba

e, Selecione * de V$INSTANCE mostra que está em MyDb e que tanto a ferramenta quanto o db são 11.2.0.3

Assim como este:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus sys/<pwd>@MyDb as sysdba

(TAMBÉM: inserir a senha errada também funciona (!))

Usando a opção do menu Iniciar do SQL-Plus do mesmo (servidor, conta e casa), estes também funcionam:

Enter user-name: /@MyDb as sysdba
Enter user-name: sys/<pwd>@MyDb as sysdba

Selecione * de V$INSTANCE mostra que está em MyDb e que a ferramenta e o db são 11.2.0.3

Tentativa de acessar o MyDb do mesmo com o SQL Developer, obtém sucesso para o nome de usuário do "sistema", mas falha para "sys" "as sysdba" com "ORA-01031: privilégios insuficientes". No entanto, isso funciona ao conectar-se a outros bancos de dados em outros servidores.

Eu pesquisei isso, e a maior parte da ajuda postada para isso parece ser destinada a casos em que nenhuma conexão pode ser feita, o que não é o caso aqui. Apenas para evitar alguns deles:

  • O problema não é que a rede não esteja configurada, porque o SQL Developer funciona para "sistema" local e remotamente.
  • O problema não é que o banco de dados/instância não foi iniciado, porque, novamente, funciona para "sistema"
  • Não é que estou me conectando ao banco de dados errado, verifiquei se havia "sistema"
  • AFAIK, não é que estou usando a sintaxe errada no SQL Developer para conectar a um banco de dados "As SYSDBA" porque funciona quando me conecto a outros servidores em outros bancos de dados.

Minha intuição é que ou

  1. há alguma configuração que diz " não permitir SYSDBA por meio de uma conexão de rede " ou
  2. há algum problema de configuração/autorização no ouvinte de rede Oracle que o está impedindo de verificar minha conta de administrador do Windows e, além disso, a senha sys não é o que me foi dito e, finalmente, o Oracle está dando uma mensagem de erro obtusa para isso.

Qualquer ajuda ou orientação sobre isso seria muito apreciada.


OK, então usando as instruções de @BalasPapp, consegui encontrar mais o seguinte:

  • Esse banco de dados é atendido pelo segundo Oracle 11g home chamado OraDb11g_home3 direcionado para D:\Oracle\app\product\11.2.0\dbhome_1D:\Oracle\app\product\11.2.0\dbhome_1.
  • Os serviços do Windows não mostraram parâmetros de inicialização para ele (exceto o nome do banco de dados, é claro).
  • o comando show parameter remote_login_passwordfilemostra um valor de " EXCLUSIVE ".

Conteúdo do Listener.ora:

# listener.ora Network Configuration File: D:\Oracle\app\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\Oracle\app\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <SERVERNAME>.<networkname>.local)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\Oracle\app

Conteúdo do sqlnet.ora:

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

A saída de lsnrctl status:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 23-DEC-2015 12:03:55

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                02-DEC-2015 16:25:41
Uptime                    20 days 19 hr. 38 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\Oracle\app\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         D:\Oracle\app\diag\tnslsnr\<SERVERNAME>\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "<DBNAME>" has 1 instance(s).
  Instance "<DBNAME>", status READY, has 1 handler(s) for this service...
The command completed successfully

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>

Parâmetros ao conectar do SQL Developer:

Username:  system (or sys)
Password:  <...>
Connection 
  Type:    Basic
  Role:    Default (or SYSDBA)
Hostname:  localhost
Port:      1521
SID (or Service name, both work/fail the same):
           <dbname>

(Neither OS Authentication nor Kerberos is set)

Funciona para "sistema, padrão", falha para "sys, SYSDBA" com "privilégios insuficientes". Eu tentei muitas combinações de configurações de Autenticação do SO e Keberos, sem sucesso.

Finalmente, estes são os dois únicos .oraarquivos no /databasediretório:

SNCF<DBNAME>.ORA           (18MB)
SPFILE<DBNAME>.ORA         (4kb)

Ambos parecem ser arquivos binários no bloco de notas.

TAMBÉM: select * from v$pwfile_usersnão retorna nenhuma linha.

oracle oracle-11g
  • 1 1 respostas
  • 20166 Views

1 respostas

  • Voted
  1. Best Answer
    ik_zelf
    2017-02-17T02:00:40+08:002017-02-17T02:00:40+08:00

    Para se conectar usando 'as sysdba' de um cliente via sql*net, você precisa ter o

    1. parâmetro remote_login_passwordfile para ter 'exclusivo'
    2. arquivo de senha (orapw${ORACLE_SID}) presente para a instância onde você tenta se conectar
    3. tenha o usuário concedido sysdba no banco de dados (sys tem esse padrão e usa a senha do arquivo passwd.

    O local padrão para o arquivo de senha é $ORACLE_HOME/dbs, mas desde o Oracle v12 ele também pode ser armazenado no ASM. Nesse caso, você o encontra usando srvctl

    • 2

relate perguntas

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • ORDER BY usando prioridades personalizadas para colunas de texto

  • Interface sqlplus confortável? [fechado]

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve