Transcripción Usuarios en Oracle DBA: gestión y administración efectiva
La cuenta de usuario permite que un usuario se conecte a una BD Oracle.
La cuenta de usuario define:
- Los permisos iniciales de acceso.
- Los atributos de sesión.
Las cuentas de usuario se encuentran asociadas a un esquema, que suele tener el mismo nombre del usuario.
Atributos de las cuentas de usuario
- Nombre de usuario: Es obligatorio y único en la BD.
- Tablespace por defecto: Indica el tablespace por defecto donde residirán los objetos del esquema.
- Cuotas de tablespace: Cantidad de espacio del tablespace que puede ocupar un usuario.
- Tablespace temporal: Indica el tablespace donde se almacenarán los objetos temporales del esquema.
- Perfil de usuario: Controla la configuración de contraseña y limita los permisos de uso de recursos.
- Estado de cuenta: Una cuenta de usuario tiene varios estados los cuales indican si se puede usar la cuenta.
Nombre de usuario
- Un nombre de usuario debe empezar por una letra.
- No puede ser de más de 30 caracteres.
- Está formado por mínimo una letra, digitos y el carácter dólar y el carácter subrayado.
- No puede ser una palabra reservada.
- Se distingue entre letras mayúscula y minúscula, pero Oracle las convierte automáticamente a mayúsculas.
- Un nombre de usuario nunca puede ser cambiado después de la creación.
Tablespace por defecto
- Cada cuenta de usuario tiene un tablespace por defecto. En este tablespace es donde residirá cualquier objeto del esquema (como tablas o índices) creado por el usuario.
- Si al crear un objeto no se especifica un tablespace que el usuario tenga una cuota, el objeto se creara en el tablespace por defecto.
- Hay un tablespace por defecto en una base de datos, que serán aplicados a todas las cuentas de usuario si no se especifica un tablespace por defecto al crear el usuario.
Sintaxis para cambiar el tablespace por defecto de la base de datos:
- ALTER DATABASE DEFAULT TABLESPACE nombre_tablespace
Sintaxis para cambiar el tablespace por defecto de un usuario:
- ALTER USER nombre_usuarioDEFAULT TABLESPACE nombre_tablespace
Cuota
Un usuario no puede crear objetos en una tablespace si no tiene asignado un espacio en el, tampoco podrá crear más objetos si no dispone del suficiente espacio libre en la cuota asignada.
Sintaxis para cambiar el tablespace por defecto de un usuario:
- ALTER USER nombre_usuario QUOTA n {K | M} | UNLIMITED } ON nombre_tablespace
Tablespace temporal
- Los objetos permanentes tal como las tablas, son almacenados en tablespaces permanentes.
- Los objetos temporales son almacenados en tablespaces temporales.
- Toda sesión tiene asignada una memoria llamada PGA, este espacio es consumido por ciertas operaciones, cuando estas operaciones requiere más espacio del que hay disponible en el PGA usan el espacio del tablespace temporal.
Las operaciones que usan la PGA pueden se:
- Ordenación de registros.
- Conexión a tablas.
- Construcción de índices.
- Utilización de tablas temporales.
- El tablespace temporal es compartida por todas las sesiones que tengan el mismo tablespace temporal.
- La dirección de espacio dentro del tablespace temporal es completamente automática.
- Los objetos creados allí son del propietario SYS, que tiene una cuota ilimitada en todo los tablespaces.
Para cambiar el tablespace temporal de un usuario se puede usar el comando:
- ALTER USER nombre_usuario TEMPORARY TABLESPACE nombre_tablespace
Perfil de usuario
El perfil de un usuario controla la configuración de contraseña y limita el control del uso de los recursos.
Estado de cuenta
Una cuenta de usuario puede estar en uno de los siguientes estados:
- OPEN: La cuenta se puede usar.
- LOCKED: La cuenta está Bloqueada y no se puede acceder a ella.
- EXPIRED: La contraseña esta caducada y tiene que ser cambiada, de esta forma se obliga al usuario a modificar la contraseña.
- EXPIRED & LOCKED: La cuenta está bloqueada y la contraseña está caducada.
- EXPIRED (GRACE): La cuenta esta en un periodo de gracia antes de que el usuario este obligado a cambiar la contraseña.
- LOCKED (TIMED): La cuenta está bloqueada por que se ha superado el número máximo de intentos de acceso fallidos.
Para bloquear y desbloquear una cuenta:
- ALTER USER username ACCOUNT LOCK
- ALTER USER username ACCOUNT UNLOCK
Para hacer que un usuario tenga que cambiar su contraseña:
- ALTER USER username PASSWORD EXPIRE
Métodos de autentificación
El método de autentificación es la forma en la que un usuario se identifica en el sistema Oracle. Existen varios métodos:
- Autentificación de sistema operativo.
- Autentificación de fichero de contraseña.
- Autentificación de contraseña.
- Autentificación externa.
- Autentificación global.
Los dos primeros métodos solo pueden ser usados por los administradores. El último requiere a un servidor de directorio LDAP. El servidor de directorio LDAP es el Oracle Internet Directory.
Autenticación basada en SO y Fichero de Contraseñas
Para habilitar este método de autenticación sobre una cuenta, se deben otorgar privilegios SYSDBA o SYSOPER al usuario. El comando para conceder estos privilegios es:
- GRANT [ sysdba | sysoper ] TO username
Al conceder estos privilegios se copia la contraseña del usuario que está en el Diccionario de Datos en el fichero de contraseñas externo y también permitiéndole conectarse como miembro del grupo del SO que pertenece a la instalación Oracle Home concreta.
Para conectarse usando la autentificación de archivo de contraseña, se puede usar el siguiente comando:
- CONNECT username / password [@db_alias] AS [ SYSOPER | SYSDBA]
Para conectarse usando la autentificación de sistema operativo, se puede usar el siguiente comando:
- CONNECT / AS [SYSOPER | SYSDBA]
Para saber que usuarios tienen los privilegios SYSDBA, SYSOPER o SYSASM:
- SELECT * FROM V$PWFILE_USERS
Autentificación por contraseña
Con este método la contraseña no está guardada en un fichero externo a la Base de datos, si no que se almacena dentro del propio Diccionario de Datos, por lo que para conectarse utilizando este método de autentificación es obligatorio que la Base de Datos esté abierta.
Comando para conectarse con la autentificación de contraseña:
- CONNECT username/ password [@db_alias]
La instancia compara la contraseña escrita con la contraseña de este usuario almacenada en el Diccionario de Datos. Con este método no se puede utilizar las órdenes STARTUP o SHUTDOWN ya que se requiere identificarse con SYS.
La contraseña distingue mayúsculas y minúsculas. Para cambiar la contraseña:
- ALTER USER username IDENTIFIED BY password
Autentificación Externa
Cuando una cuenta de usuario es creada con la autentificación externa, Oracle delegará la autentificación a un servicio externo; por lo que no se utiliza el comando CONNECT.
El servicio externo es el que valida si el usuario puede conectarse. Por ejemplo usando Kerberos, la base de datos comprobará que el usuario realmente tiene una señal Kerberos valida. La utilización de la autentificación externa solo es útil si los usuarios realmente entran la máquina que reside la base de datos pero esto para nada es lo habitual.
Autentificación Global
Un usuario global es un usuario que es definido dentro del directorio LDAP, y la autentificación global es el medio de autentificación de usuario que delega este directorio.
La identificación de un usuario se realiza en el servidor de directorio LDAP que tiene el Oracle Internet Directory instalado. Un usuario global será aquel que está definido
usuarios