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ó Externa)
 
(Hi ha 15 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
==Creación de Usuarios==
+
==Creació d'Usuaris==
  
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.
+
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.
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.
+
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.
Para cambiar alguno de los atributos que se le ha añadido al usuario creado se utiliza la sentencia '''ALTER USER'''.
 
  
==Autenticación==
+
Per canviar algun dels atributs que se li ha afegit a l'usuari creat s'utilitza la sentència '''ALTER USER'''.
  
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ó==
  
 +
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Ó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).
+
''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).
 +
<pre>
 
SQL > CREATE USER david IDENTIFIED BY tititus;
 
SQL > CREATE USER david IDENTIFIED BY tititus;
 +
</pre>
 +
En aquest cas tititus és la contrasenya de david que serà guardada encriptada en la base de dades.
  
En este caso tititus es la contraseña de david que será guardada encriptada en la base de datos.
+
===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ó.
  
===Autenticación Externa===
+
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 '''OS_AUTHENT_PREFIX''' en el spfile
 
+
<pre>
 
 
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.
 
 
 
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_PREFIX''' en el spfile
 
 
 
 
SQL > CREATE USER ops$david IDENTIFIED BY tititus;
 
SQL > CREATE USER ops$david IDENTIFIED BY tititus;
 +
</pre>
 +
Mitjançant '''IDENTIFIED EXTERNALLY''' diem a la base de dades que el nostre compte és externa i ha de ser validada amb el sistema operatiu.
  
Mediante '''IDENTIFIED EXTERNALLY''' decimos a la base de datos que nuestra cuenta es externa y tiene que ser validada con el sistema operativo.
+
===Autenticació Global===
  
===Autenticación 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.
  
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.
+
Per als comptes globals no s'emmagatzema tampoc gens en la base de dades.
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 …….
+
SQL > CREATE USER david IDENTIFIED GLOBALLY AS 'CN=alumnes,OU=campus...'
  
Mediante '''IDENTIFIED GLOBALLY''' decimos a la base de datos que nuestra cuenta se autentica globalmente, mediante otra opción de seguridad avanzada.
+
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==
+
==Assignacions als Usuaris==
  
  
===ASIGNACIÓN DE UN USUARIO A UN TABLESPACE ( DEFAULT TABLESPACE )===
+
===Assignació d'un usuari a un tablespace ( DEFAULT TABLESPACE )===
 
 
Mediante esta sentencia asignamos un usuario a un tablespace, este será su tablespace por defecto cuando creamos un usuario.
 
  
 +
Mitjançant aquesta sentencia assignem un usuari a un tablespace per defecte en la seva creació:
 +
<pre>
 
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users;
 
SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users;
 +
</pre>
  
Mediante esta sentencia, en caso de tener creado ya el usuario le asignamos un tablespace.
+
Mitjançant aquesta sentencia assignem un usuari a un tablespace per defecte després de la seva creació:
 
+
<pre>
 
SQL > ALTER USER david DEFAULT TABLESPACE users;
 
SQL > ALTER USER david DEFAULT TABLESPACE users;
 +
</pre>
  
La base de datos toma un tablespace por defecto, en caso de querer cambiar este tablespace utilizamos la siguiente sentencia
+
La base de dades té definit un tablespace per defecte, en cas de voler-lo canviar utilitzarem la següent sentencia:
 
+
<pre>
 
SQL > ALTER DATABASE DEFAULT TABLESPACE users;
 
SQL > ALTER DATABASE DEFAULT TABLESPACE users;
 +
</pre>
  
===ASIGNACIÓN DE UN USUARIO A UN TABLESPACE TEMPORAL===
+
===Assignació d'un usuari 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.
 +
<pre>
 
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;
 +
</pre>
  
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.'''
 +
<pre>
 
SQL > ALTER USER david TEMPORARY TABLESPACE Temp;
 
SQL > ALTER USER david TEMPORARY TABLESPACE Temp;
 +
</pre>
  
===ASIGNACIÓN DE UN PERFIL A UN USUARIO===
+
La base de dades pren un tablespace per defecte, en cas de voler canviar aquest tablespace utilitzem la següent sentència
 
+
<pre>
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.
+
SQL > ALTER DATABASE DEFAULT TABLESPACE users;
Si el usuario no está lo podemos crear de la siguiente forma:
+
</pre>
 +
===Assignació d'un perfil a un usuari===
  
 +
Igual que podem assignar un tablespace a un usuari, també podem assignar-li un perfil (profile). El principal perfil ( profile ) per defecte es denomina default.
 +
Si l'usuari no està el podem crear de la següent forma:
 +
<pre>
 
SQL > CREATE USER david IDENTIFIED BY tititus
 
SQL > CREATE USER david IDENTIFIED BY tititus
 
DEFAULT TABLESPACE users
 
DEFAULT TABLESPACE users
 
TEMPORARY TABLESPACE temp
 
TEMPORARY TABLESPACE temp
 
PROFILE resource_profile;
 
PROFILE resource_profile;
 +
</pre>
  
En caso de que el usuario ya esté creado al igual que en los anteriores casos utilizamos la sentencia '''ALTER USER'''.
+
En cas que l'usuari ja estigui creat igual que en els anteriors casos utilitzem la sentència '''ALTER USER'''.
 
+
<pre>
 
SQL > ALTER USER david PROFILE resource_profile;
 
SQL > ALTER USER david PROFILE resource_profile;
 +
</pre>
  
===BORRADO DE UN USUARIO===
+
===Esborrat d'un usuari===
 
 
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.
 
  
 +
Per esborrar un usuari utilitzem la sentència '''DROP USER''', podem opcionalment incloure l'opció '''CASCADE''', s'utilitza per esborrar recursivament els objectes de l'usuari que es pretén esborrar.
 +
<pre>
 
SQL > DROP USER david CASCADE
 
SQL > DROP USER david CASCADE
 +
</pre>
  
===OTORGANDO PRIVILEGIOS (GRANTING)===
+
===Atorgant privilegis (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.
+
A un usuari podem atorgar-li una sèrie de privilegis. Un privilegi permet a un usuari accedir a certs objectes o realitzar certes accions:
   
 
:*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
+
:*Privilegis sobre Objectes ( Object privileges ). Permisos sobre vistes, taules, seqüències, procediments, paquets.
  
Privilegio sobre una tabla:
+
:*Privilegis del Sistema ( System privileges ). Permisos sobre "nivells de la base de dades" com poden ser connexió a la base de dades, creació d'usuaris, limitar comptes.
  
SQL > GRANT ALL ON tabla_alumnos TO david
+
:*Privilegis sobre Rols ( Role privileges ). Molts permisos són atorgats mitjançant rols agrupant un conjunt de privilegis. Per atorgar privilegis utilitzem la sentencia GRANT, per llevar un privilegi o permís a un usuari utilitzem la sentència REVOKE
  
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.
+
EXEMPLES
  
 +
Privilegi sobre una taula:
 +
<pre>
 +
SQL > GRANT ALL ON taula_alumnes TO david
 +
</pre>
 +
Sent taula_alumnes una taula de la nostra base de dades i david un usuari d'aquesta, hem assignat mitjançant GRANT ALL,tots els permisos a l'usuari david sobre aquesta taula.
 +
<pre>
 
GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE
 
GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE
 +
</pre>
 +
Si volem assignar només un d'aquests permisos utilitzem la mateixa sentència però amb el permís que vulguem atorgar.
 +
<pre>
 +
SQL > GRANT SELECT ON taula_alumnes TO david
  
Si queremos asignar sólo uno de estos permisos utilizamos la misma sentencia pero con el permiso que queramos otorgar.
+
SQL > GRANT SELECT,INSERT ON taula_alumnes TO david
 
+
</pre>
SQL > GRANT SELECT ON tabla_alumnos TO david
+
Privilegi sobre una vista:
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
+
Per al cas de les vistes podem a un usuari atorgar permisos '''SELECT, INSERT, UPDATE, DELETE, DEBUG, REFERENCES.'''
 +
Sent vesteixi_alumnes una vista de la nostra base de dades i david un usuari d'aquesta:
 +
Atorguem a l'usuari david tots els permisos sobre la vista vista_alumnes.
 +
<pre>
 +
SQL > GRANT ALL ON vista_alumnes TO david
 +
</pre>
  
Otorgamos al usuario david algunos permisos sobre la vista_alumnos
+
Atorguem a l'usuari david alguns permisos sobre la vista_alumnes
 +
<pre>
 +
SQL > GRANT SELECT ON vista_alumnes TO david
  
SQL > GRANT SELECT ON vista_alumnos TO david
+
SQL > GRANT SELECT,INSERT ON vista_alumnes TO david
SQL > GRANT SELECT,INSERT ON vista_alumnos TO david
+
</pre>
  
Privilegio sobre una secuencia:
+
Privilegi sobre una seqüència:
  
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'''.
+
Amb les seqüències passa el mateix que amb els anteriors objectes vists, per atorgar permisos s'utilitza '''GRANT'''. Els permisos que podem atorgar a una seqüència és '''SELECT''' o '''ALTER'''.
  
Privilegio sobre un paquete,función o procedimiento:
+
Privilegi sobre un paquet,funció o procediment:
  
Los permisos que podemos otorgar a las funciones, paquetes o procedimientos almacenados en nuestra base de datos son los siguientes: '''EXECUTE, DEBUG.'''
+
Els permisos que podem atorgar a les funcions, paquets o procediments emmagatzemats en la nostra base de dades són els següents: '''EXECUTE, DEBUG.'''
  
===QUITANDO PRIVILEGIOS===
+
===LLevant privilegis===
  
Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT pero utilizando la sentencia REVOKE.
+
Si volem llevar un privilegi a un d'aquests objectes farem el mateix que amb GRANT però utilitzant la sentència REVOKE.

Revisió de 16:33, 19 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 OS_AUTHENT_PREFIX en el spfile

SQL > CREATE USER ops$david IDENTIFIED BY tititus;

Mitjançant IDENTIFIED EXTERNALLY diem a la base de dades que el 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.

Assignacions als Usuaris

Assignació d'un usuari a un tablespace ( DEFAULT TABLESPACE )

Mitjançant aquesta sentencia assignem un usuari a un tablespace per defecte en la seva creació:

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

Mitjançant aquesta sentencia assignem un usuari a un tablespace per defecte després de la seva creació:

SQL > ALTER USER david DEFAULT TABLESPACE users;

La base de dades té definit un tablespace per defecte, en cas de voler-lo canviar utilitzarem la següent sentencia:

SQL > ALTER DATABASE DEFAULT TABLESPACE users;

Assignació d'un usuari 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;

La base de dades pren un tablespace per defecte, en cas de voler canviar aquest tablespace utilitzem la següent sentència

SQL > ALTER DATABASE DEFAULT TABLESPACE users;

Assignació d'un perfil a un usuari

Igual que podem assignar un tablespace a un usuari, també podem assignar-li un perfil (profile). El principal perfil ( profile ) per defecte es denomina default. Si l'usuari no està el podem crear de la següent forma:

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

En cas que l'usuari ja estigui creat igual que en els anteriors casos utilitzem la sentència ALTER USER.

SQL > ALTER USER david PROFILE resource_profile;

Esborrat d'un usuari

Per esborrar un usuari utilitzem la sentència DROP USER, podem opcionalment incloure l'opció CASCADE, s'utilitza per esborrar recursivament els objectes de l'usuari que es pretén esborrar.

SQL > DROP USER david CASCADE

Atorgant privilegis (GRANTING)

A un usuari podem atorgar-li una sèrie de privilegis. Un privilegi permet a un usuari accedir a certs objectes o realitzar certes accions:

  • Privilegis sobre Objectes ( Object privileges ). Permisos sobre vistes, taules, seqüències, procediments, paquets.
  • Privilegis del Sistema ( System privileges ). Permisos sobre "nivells de la base de dades" com poden ser connexió a la base de dades, creació d'usuaris, limitar comptes.
  • Privilegis sobre Rols ( Role privileges ). Molts permisos són atorgats mitjançant rols agrupant un conjunt de privilegis. Per atorgar privilegis utilitzem la sentencia GRANT, per llevar un privilegi o permís a un usuari utilitzem la sentència REVOKE

EXEMPLES

Privilegi sobre una taula:

SQL > GRANT ALL ON taula_alumnes TO david

Sent taula_alumnes una taula de la nostra base de dades i david un usuari d'aquesta, hem assignat mitjançant GRANT ALL,tots els permisos a l'usuari david sobre aquesta taula.

GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE

Si volem assignar només un d'aquests permisos utilitzem la mateixa sentència però amb el permís que vulguem atorgar.

SQL > GRANT SELECT ON taula_alumnes TO david

SQL > GRANT SELECT,INSERT ON taula_alumnes TO david

Privilegi sobre una vista:

Per al cas de les vistes podem a un usuari atorgar permisos SELECT, INSERT, UPDATE, DELETE, DEBUG, REFERENCES. Sent vesteixi_alumnes una vista de la nostra base de dades i david un usuari d'aquesta: Atorguem a l'usuari david tots els permisos sobre la vista vista_alumnes.

SQL > GRANT ALL ON vista_alumnes TO david

Atorguem a l'usuari david alguns permisos sobre la vista_alumnes

SQL > GRANT SELECT ON vista_alumnes TO david

SQL > GRANT SELECT,INSERT ON vista_alumnes TO david

Privilegi sobre una seqüència:

Amb les seqüències passa el mateix que amb els anteriors objectes vists, per atorgar permisos s'utilitza GRANT. Els permisos que podem atorgar a una seqüència és SELECT o ALTER.

Privilegi sobre un paquet,funció o procediment:

Els permisos que podem atorgar a les funcions, paquets o procediments emmagatzemats en la nostra base de dades són els següents: EXECUTE, DEBUG.

LLevant privilegis

Si volem llevar un privilegi a un d'aquests objectes farem el mateix que amb GRANT però utilitzant la sentència REVOKE.