LAB – Compreendendo o SQLNET.ORA

LAB – Compreendendo o SQLNET.ORA

Introdução

O arquivo “sqlnet.ora”, encontrado em servidores de banco de dados e máquinas clientes, além de ser
responsável por definir os métodos de nomeação do Oracle abrange também diversos outros parâmetros de
configuração.
Incluindo algumas informações, destacadas abaixo, pode-se determinar por exemplo uma verificação para
conferir se as conexões cliente/servidor estão ativas e até mesmo permitir acesso ao banco de dados de um único IP
da rede.

Parâmetros sqlnet.ora Oracle Database Release 18

ACCEPT_MD5_CERTS
ACCEPT_SHA1_CERTS
ADD_SSLV3_TO_DEFAULT
BEQUEATH_DETACH
EXADIRECT_FLOW_CONTROL
EXADIRECT_RECVPOLL
DEFAULT_SDU_SIZE
DISABLE_OOB
HTTPS_SSL_VERSION
IPC.KEYPATH
NAMES.DEFAULT_DOMAIN
NAMES.DIRECTORY_PATH
NAMES.LDAP_AUTHENTICATE_BIND
NAMES.LDAP_CONN_TIMEOUT
NAMES.LDAP_PERSISTENT_SESSION
NAMES.NIS.META_MAP
RECV_BUF_SIZE
SDP.PF_INET_SDP
SEC_USER_AUDIT_ACTION_BANNER
SEC_USER_UNAUTHORIZED_ACCESS_BANNER
SEND_BUF_SIZE
SQLNET.ALLOWED_LOGON_VERSION_CLIENT
SQLNET.ALLOWED_LOGON_VERSION_SERVER
SQLNET.AUTHENTICATION_SERVICES
SQLNET.CLIENT_REGISTRATION
SQLNET.COMPRESSION
SQLNET.COMPRESSION_LEVELS
SQLNET.COMPRESSION_THRESHOLD
SQLNET.CRYPTO_CHECKSUM_CLIENT
SQLNET.CRYPTO_CHECKSUM_SERVER
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER
SQLNET.DBFW_PUBLIC_KEY
SQLNET.DOWN_HOSTS_TIMEOUT
SQLNET.ENCRYPTION_SERVER
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER
SQLNET.EXPIRE_TIME
SQLNET.INBOUND_CONNECT_TIMEOUT
SQLNET.KERBEROS5_CC_NAME
SQLNET.KERBEROS5_CLOCKSKEW
SQLNET.KERBEROS5_CONF
SQLNET.KERBEROS5_CONF_LOCATION
SQLNET.KERBEROS5_KEYTAB
SQLNET.KERBEROS5_REALMS
SQLNET.KERBEROS5_REPLAY_CACHE
SQLNET.OUTBOUND_CONNECT_TIMEOUT
SQLNET.RADIUS_ALTERNATE
SQLNET.RADIUS_ALTERNATE_PORT
SQLNET.RADIUS_ALTERNATE_RETRIES
SQLNET.RADIUS_AUTHENTICATION
SQLNET.RADIUS_AUTHENTICATION_INTERFACE
SQLNET.RADIUS_AUTHENTICATION_PORT
SQLNET.RADIUS_AUTHENTICATION_RETRIES
SQLNET.RADIUS_AUTHENTICATION_TIMEOUT
SQLNET.RADIUS_CHALLENGE_RESPONSE
SQLNET.RADIUS_SECRET
SQLNET.RADIUS_SEND_ACCOUNTING
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT
SQLNET.WALLET_OVERRIDE
SSL_CERT_REVOCATION
SSL_CERT_FILE
SSL_CERT_PATH
SSL_CIPHER_SUITES
SSL_EXTENDED_KEY_USAGE
SSL_SERVER_DN_MATCH
SSL_VERSION
TCP.CONNECT_TIMEOUT
TCP.EXCLUDED_NODES
TCP.INVITED_NODES
TCP.NODELAY
TCP.QUEUESIZE
TCP.VALIDNODE_CHECKING
TNSPING.TRACE_DIRECTORY
TNSPING.TRACE_LEVEL
USE_CMAN
USE_DEDICATED_SERVER
WALLET_LOCATION

Conteúdo SQLNET.ORA

A localização padrão onde este arquivo fica gravado é:

  • Em ambiente Windows: %ORACLE_HOME%\network\admin;
  • Em ambiente UNIX: $ORACLE_HOME/network/admin;

Para verificar o conteúdo do sqlnet.ora, gerado pelo NETCA:

[oracle@ORCL oracle]$ vi $ORACLE_HOME/network/admin/sqlnet.ora

Arquivo sqlnet.ora:

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

NAMES.DIRECTORY_PATH

Como foi visto anteriormente, o NETCA configura apenas os métodos de nomeação. Pode-se utilizar múltiplos
métodos apenas representando-os em uma lista separada por ponto e vírgula (;) e delimitadas por parênteses.
A ordem é da esquerda para a direita, ou seja, o Oracle irá usar o método TNSNAMES primeiro, caso não consiga
resolver, irá usar o EZCONNECT.

SQLNET_ALLOWED_LOGON_VERSION

Após a atualização para o Oracle Database 12c e versões superiores, é comum encontrar o seguinte erro:
ORA-28040: No matching authentication protocol.


Como solução, ajustamos o arquivo sqlnet.ora adicionando os parâmetros SQLNET_ALLOWED_LOGON_VERSION,
SQLNET.ALLOWED_LOGON_VERSION_CLIENT, SQLNET.ALLOWED_LOGON_VERSION_SERVER.

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET_ALLOWED_LOGON_VERSION = (8,9,10,11)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.EXPIRE_TIME

Este parâmetro, definido no servidor, ativa a detecção de conexão inativa. Após o intervalo de tempo especificado,
expresso em minutos, o servidor verifica se o cliente ainda está conectado. Se identificado que o cliente não está
mais conectado, o processo no servidor será encerrado.
É aconselhado setar o valor entre 1 e 10 minutos.

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET_ALLOWED_LOGON_VERSION = (8,9,10,11)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.EXPIRE_TIME=10 

SQLNET.INBOUND_CONNECT_TIMEOUT

Setado este parâmetro, que deverá ser feito em segundos, irá limitar o tempo para um cliente se conectar ao
servidor de banco de dados e fornecer as informações de autenticação necessárias.
O valor padrão é de 60 segundos, portanto se o cliente não puder autenticar dentro de 60 segundos a conexão do
cliente será encerrada.

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET_ALLOWED_LOGON_VERSION = (8,9,10,11)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.EXPIRE_TIME=10
SQLNET.INBOUND_CONNECT_TIMEOUT=180

Adicionando este parâmetro no arquivo de configuração “sqlnet.ora” é interessante adicionar o parâmetro
INBOUND_CONNECT_TIMEOUT_LISTENER agora no arquivo de configuração “listener.ora” que pode ser localizado
no mesmo diretório. Vale ressaltar também que este valor deverá ser menor do que o adicionado no sqlnet.ora.

# listener.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

INBOUND_CONNECT_TIMEOUT_LISTENER = 120

TCP.VALIDNODE_CHECKING
TCP.INVITED_NODES
TCP.EXCLUDED_NODES

Como uma simples e eficiente medida de segurança é possível restringir as máquinas que podem acessar o banco de
dados.
Para isso basta adicionar os seguintes parâmetros no arquivo “sqlnet.ora”:

  • TCP.VALIDNODE_CHECKING ativa ou desativa os outros 2 recursos.
  • TCP.INVITED_NODES lista todos os clientes que têm permissão para acessar o banco de dados.
  • TCP.EXCLUDED_NODES especifica quais clientes não têm permissão para acessar o banco de dados. Na
    verdade, nem mesmo o ouvinte (TNSPING).

Obs.: Todos os nomes dos hosts, ou IPs, devem necessariamente serem resolvidos ou então o listener não será
iniciado.

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET_ALLOWED_LOGON_VERSION = (8,9,10,11)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.EXPIRE_TIME=10
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES = (127.0.0.1, 10.150.0.2, 169.254.169.254)
TCP.EXCLUDED_NODES = (192.168.249.203)

Na configuração acima, informamos quais as máquinas que podem acessar o banco de dados, e qual a máquina não
poderá se conectar.
Tentativa de conexão por meio da máquina de IP 192.168.249.203

PS C:\Windows\system32> sqlplus system/Oracle123@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=temp02
)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))"

SQL*Plus: Release 11.2.0.1.0 Production on Qua Nov 28 23:26:00 2018

Copyright (c) 1982, 2010, Oracle. All rights reserved.

ERROR:
ORA-12537: TNS:conexÒo fechada


Informe o nome do usußrio:

SQLNET.AUTHENTICATION_SERVICES

Este parâmetro é responsável por habilitar um ou mais serviços de autenticação.

  • NONE – para nenhum método de autenticação.
  • ALL – para todos os métodos de autenticação.
  • NTS – para autenticação do sistema operacional nativo do Windows.

No sqlnet.ora adicionamos o parâmetro SQLNET.AUTHENTICATION_SERVICES= (NONE) conforme abaixo.

# sqlnet.ora Network Configuration File: /u01/app/oracle/18.3.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET_ALLOWED_LOGON_VERSION = (8,9,10,11)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.EXPIRE_TIME=10
SQLNET.AUTHENTICATION_SERVICES= (NONE)

Como utilizamos o método NONE, vamos tentar conectar no banco de dados como SYS sem utilização da senha.

[oracle@ORCL oracle]$sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Qua Nov 28 23:40:30 2018
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Informe o nome do usu▒rio:

Podemos perceber conforme acima que ocorreu erro ao tentar conectar.
Vamos conectar com o login e senha.

[oracle@ORCL oracle]$sqlplus sys/Oracle123 as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Qua Nov 28 23:43:42 2018
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.


Conectado a:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

SQL> 

Conforme acima com o ajuste todos os usuários deverão acessar com o login e senha obrigatoriamente.

Referências

Oracle Help Center – Net Services Reference
https://docs.oracle.com/en/database/oracle/oracle-database/18/netrf/parameters-for-the-sqlnet-ora-file.html#GUID-28040885-6832-4FFC-9258-0EF19FE9A3AC

DBI SERVICES – Oracle 12cR2 – DataGuard and TCP.VALID_NODE_CHECKING
https://blog.dbi-services.com/oracle-12cr2-dataguard-and-tcp-valid_node_checking/

TwelveC
https://twelvec.com/tag/sqlnet-allowed_logon_version_client/

PRASHANT ATRI DBA
https://prashantatridba.wordpress.com/tag/inbound_connect_timeout/

COMENTÁRIOS

Política de Privacidade e Termos de Uso de Dados - Dataunique Tecnologia da Informação LTDA

A Dataunique Tecnologia da Informação LTDA, empresa devidamente registrada sob o CNPJ 15.179.495/0001-35, compromete-se a proteger a privacidade e segurança dos dados pessoais de seus usuários. Esta política descreve como coletamos, usamos, compartilhamos e protegemos as informações pessoais fornecidas por você.

1. Informações Coletadas

1.1. A Dataunique coleta informações fornecidas voluntariamente por você, como nome, endereço, e-mail, número de telefone, entre outras, durante o cadastro ou utilização de nossos serviços.

1.2. Dados de acesso e utilização de nossos serviços, como endereço IP, tipo de navegador, páginas visitadas e tempo de permanência, podem ser automaticamente registrados para melhorar a qualidade dos serviços oferecidos.

2. Uso de Informações

2.1. As informações coletadas são utilizadas para fornecer, manter, proteger e melhorar nossos serviços, bem como para desenvolver novos serviços.

2.2. Podemos utilizar seus dados para personalizar conteúdos, oferecer suporte ao cliente, enviar atualizações, newsletters e informações sobre novos produtos ou serviços.

3. Compartilhamento de Informações

3.1. A Dataunique não compartilha informações pessoais com terceiros, exceto quando necessário para cumprir obrigações legais, proteger nossos direitos ou em situações autorizadas por você.

4. Segurança de Dados

4.1. Utilizamos medidas de segurança adequadas para proteger suas informações contra acessos não autorizados, alterações, divulgação ou destruição não autorizada.

5. Cookies e Tecnologias Semelhantes

5.1. Utilizamos cookies e tecnologias semelhantes para melhorar a experiência do usuário, analisar o tráfego e personalizar conteúdos.

6. Seus Direitos

6.1. Você tem o direito de acessar, corrigir ou excluir suas informações pessoais. Para exercer esses direitos ou esclarecer dúvidas, entre em contato com nosso Encarregado de Proteção de Dados (DPO) através do e-mail [email protected].

7. Alterações na Política de Privacidade

7.1. Reservamo-nos o direito de alterar esta política a qualquer momento, e as alterações serão comunicadas por meio de nossos canais de comunicação.

Ao utilizar nossos serviços, você concorda com os termos desta Política de Privacidade. Recomendamos a leitura regular desta política para se manter informado sobre como tratamos seus dados pessoais.

Dados de Contato:

  • Endereço: Rua T30, 2515, Quadra 99 Lote 11/14, Sala 1404 e 1405, Edif Walk Bueno Business Edif e Lifestyle, SET BUENO, Goiânia – GO, 74215-060.
  • Telefone: (62) 99906-0584
  • Fax/Mensageiro Online: (62) 3223-2257
  • E-mail: [email protected]

Data de vigência: [Data de atualização da política]

Atenciosamente,

Dataunique Tecnologia da Informação LTDA