1. Creamos el usuario en el sistema operativo
# useradd marcos
# passwd marcos
Changing password for marcos.
2. Configuramos los parámetros siguientes:
La autentificación por sistema operativo no esta activada por defecto en Oracle. Para permitir el uso de usuarios del sistema operativo , llamados por Oracle OPSS users, abrimos SQL Plus o alg'un cliente SQL Y ejecutamos el siguiente comando:
alter system set os_authent_prefix=OPS$ scope=spfile;
Nos modifica el fichero binario: cat /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/dbs/spfile%SID.ora
Este contiene parámetros de configuración de la instancia que se esta ejecutando.
Reiniciamos la DB:
shutdown immediate
Startup
Creamos el usuario en nuestra base de datos:
CREATE USER OPS$lucas IDENTIFIED EXTERNALLY DEFAULT;
Le aplicamos los roles y privilegios como cualquier otro usuario:
GRANT CONNECT, RESOURCE TO marcos;
3. Reiniciamos la base de datos:
/etc/init.d/oracle-%SID restart
4.- A continuación, tratamos de conectarnos a Oracle como un usuario del sistema operativo
autenticado. Esperamos que falle! Quizás sea necesario configurar algunas variable de entorno para
que SQL * PLUS funcione correctamente.
- Vemos la configuración actual de SQL * PLUS
#cat
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh
# su - tim_hall
$ export ORACLE_HOME=”Dato Obtenido del cat enterior”
$ export PATH=”Dato Obtenido del cat enterior”
$ export ORACLE_SID=”Dato Obtenido del cat enterior” , XE
$ sqlplus /
En el ejemplo:
$export:ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
$export PATH=$PATH:$ORACLE_HOME/bin:$PATH
$export ORACLE_SID=XE
$sqlplus /
Para que se coloquen automáticamente al iniciar sesion un usuario, editar el archivo
/home/lucas/.bashrc y añadir las lineas 1, 2 y 3. y para que esta configuración la tengan
usuario que creemos en el sistema las añadimos al fichero /etc/skel/.bashrc .
B) En Windows:
1. Creamos un usuario en el sistema operativo.
2. Configuramos los parámetros siguientes:
alter system set os_authent_prefix =OPS$ scope=spfile;
Nota: El valor por defecto es “OPS$”
Si el usuario del sistema operativo es miembro de un grupo de dominio entonces también
configuramos el siguiente parámetro:
alter system set remote_os_authent=TRUE scope=spfile;
Nota: El valor por defecto del parámetro es FALSE,
3. Editamos el fichero sqlnet.ora y cambiamos el valor de la siguiente linea a NTS:
Sqlnet.authentication_services=(NTS)
4. Reiniciamos la base de datos:
shutdown immediate
startup
Vemos que los parámetros se hayan modificado correctamente usando :
SQL> show parameter authen
NAME TYPE VALUE
----------------------- ----------- -------------
os_authent_prefix string OPS$
remote_os_authent boolean TRUE
5. Creamos un usuario Oracle para autenticación mediante OS
Primero comprobamos el nombre del usuario del sistema operativo.
SQL> select UPPER(sys_context('userenv','os_user')) from dual;
-------------------------------------------------------------------
NOMBREDELAMAQUINA\MARCOS
Ahora creamos el usuario con el mismo nombre que vimos con la sentencia anterior,
incluido el nombre de la máquina, añadiendo la clausula identified by EXTERNALLY.
create user OPS$NOMBREDELAMAQUINA\MARCOS identified EXTERNALLY;
Nota: El nombre del usuario de Oracle debe tener obligatoriamente el mismo nombre que el usuario
y el nombre de máquina del sistema operativo y al crearlo debe comenzar con “OPS$”.
Damos privilegios como a cualquier otro usuario :
SQL> grant dba to "OPS$MACHINENAME\TOM";
6. Testeamos la conexión a través del usuario del sistema operativo.
Sqlplus /
SQL> show user;
USER is "OPS$NOMBREDELAMAQUINA\MARCOS"
No comments:
Post a Comment