Diferència entre revisions de la pàgina «M2 - Bases de dades / Continguts UF3: Administració d'usuaris»

De wikiserver
Dreceres ràpides: navegació, cerca
(Autenticación)
(ASIGNACIÓN DE UN USUARIO A UN TABLESPACE TEMPORAL)
Línia 58: Línia 58:
 
===ASIGNACIÓN DE UN USUARIO A UN TABLESPACE TEMPORAL===
 
===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.
+
Un tablespace temporal s'utilitza per emmagatzemar "segments" temporals que són creats durant operacions com '''ORDER BY,SELECT DISTINCT, MERGE JOIN o CREATE INDEX'''. De vegades als usuaris se'ls associa un tablespace temporal per realitzar aquest tipus d'operacions, quan aquestes operacions finalitzen aquest segment temporal que s'ha creat exclusivament per a l'operació desapareix.
  
 
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users
 
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users
 
TEMPORARY TABLESPACE temp;
 
TEMPORARY TABLESPACE temp;
  
Mediante '''TEMPORARY TABLESPACE''' asignamos como tablespace temporal temp al usuario david.
+
Mitjançant '''TEMPORARY TABLESPACE''' assignem com tablespace temporal temp a l'usuari david.
En caso de que el usuario esté creado si queremos asignarle un tablespace temporal utilizamos '''ALTER USER.'''
+
 
 +
En cas que l'usuari estigui creat si volem assignar-li un tablespace temporal utilitzem '''ALTER USER.'''
  
 
SQL > ALTER USER david TEMPORARY TABLESPACE Temp;
 
SQL > ALTER USER david TEMPORARY TABLESPACE Temp;

Revisió del 20:04, 4 feb 2018

Creació d'Usuaris

Una de les més bàsiques tasques d'un administrador de base de dades és identificar els usuaris. Cada usuari que connecta en la base de dades deu tenir un compte. En els comptes compartits són difícils d'aplicar una auditoria. Per crear un usuari utilitzem la sentència CREATE USER. Quan creguis un compte com a mínim has d'assignar un únic nom (username) i una contrasenya per poder autenticar-se.

Per canviar algun dels atributs que se li ha afegit a l'usuari creat s'utilitza la sentència ALTER USER.

Autenticació

Quan un es connecta amb una instància d'una base de dades el compte d'usuari deu estar autenticada. ORACLE proveeix tres mètodes d'autenticació per al nostre compte d'usuari.


AUTENTICACIÓ MITJANÇANT PASSWORD

Quan un usuari connecta amb una base de dades verifica que aquest usuari i la contrasenya introduïda emmagatzemada en la base de dades, sigui correcta. Les contrasenyes es guarden encriptades en la base de dades (en el data dictionary).

SQL > CREATE USER david IDENTIFIED BY tititus;

En aquest cas tititus és la contrasenya de david que serà guardada encriptada en la base de dades.

Autenticació Externa

Quan un usuari connecta amb la base de dades es verifica que el nom d'usuari és el mateix que el nom d'usuari del sistema operatiu per permetre la validació.

No s'emmagatzemen els comptes en la base de dades de cap manera. Aquests comptes estan sempre referides amb OPS$ .A partir de la versió 10g pots configurar US_AUTHENT_PREFIX en el spfile

SQL > CREATE USER ops$david IDENTIFIED BY tititus;

Mitjançant IDENTIFIED EXTERNALLY diem a la base de dades que nostre compte és externa i ha de ser validada amb el sistema operatiu.

Autenticació Global

Quan un usuari es connecta amb la base de dades es verifica globalment quan la informació passa per una opció avançada de seguretat (ADVANCED SECURITY OPTION) per a l'autenticació tal com Kerberos, RADIUS.

Per als comptes globals no s'emmagatzema tampoc gens en la base de dades.

SQL > CREATE USER david IDENTIFIED GLOBALLY AS 'CN=alumnes,OU=campus...'

Mitjançant IDENTIFIED GLOBALLY diem a la base de dades que nostre compte s'autentica globalment, mitjançant una altra opció de seguretat avançada.

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.

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 s'utilitza per emmagatzemar "segments" temporals que són creats durant operacions com ORDER BY,SELECT DISTINCT, MERGE JOIN o CREATE INDEX. De vegades als usuaris se'ls associa un tablespace temporal per realitzar aquest tipus d'operacions, quan aquestes operacions finalitzen aquest segment temporal que s'ha creat exclusivament per a l'operació desapareix.

SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

Mitjançant TEMPORARY TABLESPACE assignem com tablespace temporal temp a l'usuari david.

En cas que l'usuari estigui creat si volem assignar-li un tablespace temporal utilitzem 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;

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 sentenciaGRANT, para quitar un privilegio o permiso a un usuario utilizamos la sentencia REVOKE

EJEMPLOS

Privilegio sobre una tabla:

SQL > GRANT ALL ON tabla_alumnos TO david

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.

QUITANDO PRIVILEGIOS

Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT pero utilizando la sentencia REVOKE.