Transcripción Creando un perfil en Oracle DBA: guía y recomendaciones
Oracle intenta mantener una política de seguridad basada en el menor privilegio, que consiste en que sólo se debe tener acceso a lo mínimo imprescindible para realizar una tarea y solo se puede realizar las operaciones a las que expresamente se ha dado autorización.
Ningún usuario, excepto los usuarios SYS y SYSTEM, puede hacer cualquier cosa sin haberle concedido los privilegios oportunos.
Privilegios Públicos.
Todos los usuarios están asignados por defecto al rol PUBLIC, que proporciona privilegios que permiten ejecutar una serie de paquetes:
- UTL_FILE: Los programas PL/SQL pueden leer y escribir archivos o directorios accesibles al propietario del S.O. donde reside Oracle.
- UTL_TCP: Permite a las aplicaciones PL/SQL establecer comunicación con servidores externos que utilizan el protocolo TCP/IP.
- UTL_SMTP: Este paquete está diseñado para enviar correos electrónicos a través del Protocolo SMTP.
- UTL_HTTP: Puede usarse para acceder a datos de Internet a través de HTTP.
El rol PUBLIC tiene por defecto muchos privilegios y se recomienda revocar los privilegios de ejecución en los paquetes UTL:
- REVOKE EXECUTE ON UTL_FILE FROM PUBLIC
Para obtener información sobre los privilegios, se puede acceder a la vista de Diccionario de Datos DBA_TAB_PRIVS.
Parámetros de instancia.
Los parámetros de la instancia que afectan sobre todo a la seguridad son:
- UTL_FILE_DIR: Se puede indicar una lista de directorios a los que se puede acceder desde PL/SQL vía UTL_FILE.
Si su valor es NULL, no se podrá acceder a ningún directorio. La siguiente sintaxis permite el acceso a dos directorios después de haber restaurado la instancia:
- ALTER SYSTEM SET UTL_FILE_DIR="/ORACLE/TMP","/ORACLE/INTERFACE" SCOPE=SPFILE
En el parámetro UTL_FILE_DIR nunca se debería usar ‘*’, porque esto permitiría acceso total a todo lo que el propietario de la base de datos puede ver, incluso el ORACLE_HOME y todos los archivos de base de datos.
REMOTE_OS_AUTHENT:
- Permite la conexión a la BD desde máquinas remotas sin necesidad de contraseña. Por defecto es FALSE, por lo que siempre se requiere la contraseña cuando se accede de forma remota.
- Oracle delega la autenticación al sistema operativo servidor y, para permitir que un usuario se conecte de esta forma, hay que poner este parámetro a TRUE y crear un usuario en la base de datos y en el sistema operativo con el mismo nombre.
Para crear un usuario externo se puede usar la siguiente sentencia:
- CREATE USE
creando perfil