Download Administración de Oracle

Document related concepts
no text concepts found
Transcript
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
1. Creación de usuarios
Una de las más básicas tareas de un administrador de base de datos es identificar los
usuarios. Cada usuario que conecta en la base de datos debe de tener una cuenta. En las
cuentas compartidas son difíciles de aplicar una auditoria.
Para crear un usuario utilizamos la sentencia CREATE USER. Cuando creas una cuenta como
mínimo tienes que asignar un único nombre (username) y una contraseña para poder
autenticarse.
Para cambiar alguno de los atributos que se le ha añadido al usuario creado se utiliza la
sentencia ALTER USER.
2. Autenticación Oracle
Cuando uno se conecta con una instancia de una base de datos la cuenta de usuario debe de
estar autenticada. ORACLE provee tres métodos de autenticación para nuestra cuenta de
usuario.
AUTENTICACIÓN MEDIANTE PASSWORD:
Cuando un usuario conecta con una base de datos verifica que este usuario y la contraseña
introducida almacenada en la base de datos, sea correcta. Las contraseñas se guardan
encriptadas en la base de datos (en el data dictionary).
SQL > CREATE USER david IDENTIFIED BY tititus;
En este caso tititus es la contraseña de david que será guardada encriptada en la base de
datos.
AUTENTICACIÓN EXTERNA:
Cuando un usuario conecta con la base de datos se verifica que el nombre de usuario es el
mismo que el nombre de usuario del sistema operativo para permitir la validación.
1/6
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
No se almacenan las cuentas en la base de datos de ninguna forma. Estas cuentas están
siempre referidas con OPS$ .A partir de la versión 10g puedes configurar OS_AUTHENT_PRE
FIX
en el spfile
SQL > CREATE USER ops$david IDENTIFIED BY tititus;
Mediante IDENTIFIED EXTERNALLY decimos a la base de datos que nuestra cuenta es
externa y tiene que ser validada con el sistema operativo.
AUTENTICACIÓN GLOBAL:
Cuando un usuario se conecta con la base de datos se verifica globalmente cuando la
información pasa por una opción avanzada de seguridad ( ADVANCED SECURITY OPTION )
para la autenticación tal como Kerberos, RADIUS ....
Para las cuentas globales no se almacena tampoco nada en la base de datos.
SQL > CREATE USER david IDENTIFIED GLOBALLY AS ‘CN=alumnos,OU=campus .......’
Mediante IDENTIFIED GLOBALLY decimos a la base de datos que nuestra cuenta se
autentica globalmente, mediante otra opción de seguridad avanzada.
3. Asignaciones a los usuarios
ASIGNACIÓN DE UN USUARIO A UN TABLESPACE ( DEFAULT TABLESPACE )
Mediante esta sentencia asignamos un usuario a un tablespace, este será su tablespace por
defecto cuando creamos un usuario.
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users;
Mediante esta sentencia, en caso de tener creado ya el usuario le asignamos un tablespace.
2/6
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
SQL > ALTER USER david DEFAULT TABLESPACE users;
La base de datos toma un tablespace por defecto, en caso de querer cambiar este tablespace
utilizamos la siguiente sentencia
SQL > ALTER DATABASE DEFAULT TABLESPACE users;
ASIGNACIÓN DE UN USUARIO A UN TABLESPACE TEMPORAL
Un tablespace temporal se utiliza para almacenar “segmentos” temporales que son creados
durante operaciones como ORDER BY,SELECT DISTINCT, MERGE JOIN o CREATE INDEX.
A veces a los usuarios se les asocia un tablespace temporal para realizar este tipo de
operaciones, cuando estas operaciones finalizan este segmento temporal que se ha creado
exclusivamente para la operación desaparece.
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
Mediante TEMPORARY TABLESPACE asignamos como tablespace temporal temp al usuario
david. En caso de que el usuario esté creado si queremos asignarle un tablespace temporal
utilizamos
ALTER USER
SQL > ALTER USER david TEMPORARY TABLESPACE Temp;
ASIGNACIÓN DE UN PERFIL A UN USUARIO
Al igual que podemos asignar un tablespace a un usuario, también podemos asignarle un perfil
(profile). El principal perfil ( profile ) por defecto se denomina default.
Si el usuario no está lo podemos crear de la siguiente forma:
SQL > CREATE USER david IDENTIFIED BY tititus
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
PROFILE resource_profile;
3/6
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
En caso de que el usuario ya esté creado al igual que en los anteriores casos utilizamos la
sentencia ALTER USER.
SQL > ALTER USER david PROFILE resource_profile;
BORRADO DE UN USUARIO
Para borrar un usuario utilizamos la sentencia DROP USER, podemos opcionalmente incluir la
opción
CASCADE, se utiliza para
borrar recursivamente los objetos del usuario que se pretende borrar.
SQL > DROP USER david CASCADE
OTORGANDO PRIVILEGIOS (GRANTING)
A un usuario podemos otorgarle una serie de privilegios. Un privilegio permite a un usuario
acceder a ciertos objetos o realizar ciertas acciones:.
- Privilegios sobre Objetos ( Object privileges ) a permisos sobre vistas, tablas, secuencias,
procedimientos, paquetes.
- Privilegios del Sistema ( System privileges ) a permisos sobre “niveles de la base de datos”
como pueden ser conexión a la base de datos, creación de usuarios, limitar cuentas.
- Privilegios sobre Roles ( Role privileges ) a muchos permisos son otorgados mediante roles
agrupando un conjunto de privilegios.
Para otorgar privilegios utilizamos la sentencia GRANT, para quitar un privilegio o permiso a un
usuario utilizamos la sentencia
REVOK
E
EJEMPLOS:
Privilegio sobre una tabla:
SQL > GRANT ALL ON tabla_alumnos TO david
4/6
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
Siendo tabla_alumnos una tabla de nuestra base de datos y david un usuario de esta, hemos
asignado mediante GRANT ALL,todos los permisos al usuario david sobre esta tabla.
GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE
Si queremos asignar sólo uno de estos permisos utilizamos la misma sentencia pero con el
permiso que queramos otorgar.
SQL > GRANT SELECT ON tabla_alumnos TO david
SQL > GRANT SELECT,INSERT ON tabla_alumnos TO david
Privilegio sobre una vista:
Para el caso de las vistas podemos a un usuario otorgar permisos SELECT, INSERT,
UPDATE, DELETE, DEBUG, REFERENCES
.
Siendo vista_alumnos una vista de nuestra base de datos y david un usuario de esta:
Otorgamos al usuario david todos los permisos sobre la vista vista_alumnos.
SQL > GRANT ALL ON vista_alumnos TO david
Otorgamos al usuario david algunos permisos sobre la vista_alumnos
SQL > GRANT SELECT ON vista_alumnos TO david SQL > GRANT SELECT,INSERT ON
vista_alumnos TO david
Privilegio sobre una secuencia:
Con las secuencias pasa lo mismo que con los anteriores objetos vistos, para otorgar permisos
se utiliza GRANT. Los permisos que podemos otorgar a una secuencia es SELECT o ALTER.
Privilegio sobre un paquete,función o procedimiento:
Los permisos que podemos otorgar a las funciones, paquetes o procedimientos almacenados
en nuestra base de datos son los siguientes: EXECUTE, DEBUG.
5/6
Administración de usuarios en Oracle - Administración de Oracle - Orasite.com
Escrito por Administrator
Jueves, 09 de Diciembre de 2010 18:25 -
QUITANDO PRIVILEGIOS
Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT
pero utilizando la sentencia REVOKE.
SQL > REVOKE ALL ON tabla_usuarios FROM david
6/6