Autenticação externa no Windows

Quem nunca viu um DBA se conectando sem a senha?
/ AS SYSDBA mas ali temos uma autenticação por arquivo de senhas que está localizado no $ORACLE_HOME/dbs.
Mas a ideia agora é outra, é fazer com que os usuários da minha rede se conectarem no banco sem precisar informar o seu usuário e senha.

Primeiramente devemos deixar alguns parametros corretos no banco:

SQL> show parameter auth

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      OPS$
remote_os_authent                    boolean     TRUE

Eu estou deixando o parametro os_authent_prefix como OPS$ pois utilizei como base o site psoug.org para fazer esse tutorial e este parametro serve principalmente para mostrar aos usuários que estão logados no banco via Sistema Operacional, melhor para administração do banco.

Após deixado os parametros do banco desta forma temos que criar os usuários.

SQL> create user OPS$RSTOEVER IDENTIFIED EXTERNALLY;

User created.

SQL> grant connect to OPS$RSTOEVER;

Grant succeeded.

Criei o usuário rstoever que é o usuário da minha máquina windows. Lembrando que o meu Oracle 10g que estou utilizando como exemplo está em um linux 64b.

E feito isso configurei o meu TNSNAMES.ora do meu client, conferi se no SQLNET.ora estava configurado para SQLNET.AUTHENTICATION_SERVICES= (NTS) e fiz a minha conexão do banco.

c:\ >sqlplus /@dbora
SQL*Plus: Release 11.2.0.1.0 Production on Sex Jun 14 21:38:59 2013

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


Conectado a:
Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

dbora>select * from tab;

nπo há linhas selecionadas

E dentro da v$session:

                                                                                                   
INST USERNAME               OS_PID SESSAO       MACHINE: OSUSER                     PROGRAMA       
---- -------------------- -------- ------------ ----------------------------------- ---------------
   1 SYS                      3638 '159,10'     ora10g64: oracle                    sqlplus@ora10g6
   1 SYSTEM                   3363 '150,6'      WORKGROUP\RSUBK7: rafael.stoever    plsqldev.exe   
   1 SYSTEM                   3365 '149,8'      WORKGROUP\RSUBK7: rafael.stoever    plsqldev.exe   
   1 OPS$RAFAEL.STOEVER       3669 '147,46'     WORKGROUP\RSUBK7: rafael.stoever    plsqldev.exe    <----- acesso autenticado externamente
   1 OPS$RSTOEVER             3666 '146,24'     WORKGROUP\RSTOEVER-PC: rstoever     sqlplus.exe     <----- acesso autenticado externamente
   1 OPS$RAFAEL.STOEVER       3634 '148,16'     WORKGROUP\RSUBK7: rafael.stoever    sqlplus.exe     <----- acesso autenticado externamente

Agora é deixar a sua rede bem protegida !

%name Autenticação externa no Windows

Autor: Rafael Stoever

Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).