Diferència entre revisions de la pàgina «M2 - Bases de dades / Continguts UF3: Privilegis i usuaris»
(→Rols) |
(→Rols) |
||
(Hi ha 8 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 5: | Línia 5: | ||
:*El nom d'usuari no ha de superar 30 caràcters, no ha de tenir caràcters especials i ha d'iniciar amb una lletra. | :*El nom d'usuari no ha de superar 30 caràcters, no ha de tenir caràcters especials i ha d'iniciar amb una lletra. | ||
− | :*Un mètode d'autenticació. El mes comú és una clau o password, però Oracle 10g suporta altres mètodes (com biomètric, certificat i autenticació per mitjà de token). | + | :*'''Un mètode d'autenticació'''. El mes comú és una clau o '''password''', però Oracle 10g suporta altres mètodes (com biomètric, certificat i autenticació per mitjà de token). |
− | :*Un Tablespace default, el qual és on l'usuari va a poder crear els seus objectes per defecte, no obstant això, això no significa que pugui crear objectes, o que tingui una quota d'espai. Aquests permisos s'assignen de forma separada, excepte si utilitza el privilegi RESOURCE el que assigna una quota unlimited, fins i tot en el Tablespace SYSTEM! No obstant això si això ocorre, un. pot posteriorment moure els objectes creats en el SYSTEM a un altre Tablespace. | + | :*'''Un Tablespace default''', el qual és on l'usuari va a poder crear els seus objectes per defecte, no obstant això, això no significa que pugui crear objectes, o que tingui una quota d'espai. Aquests permisos s'assignen de forma separada, excepte si utilitza el privilegi RESOURCE el que assigna una quota unlimited, fins i tot en el Tablespace SYSTEM! No obstant això si això ocorre, un. pot posteriorment moure els objectes creats en el SYSTEM a un altre Tablespace. |
− | :*Un Tablespace temporal, on l'usuari crea els seus objectes temporals i fa els sort o ordenaments. | + | :*'''Un Tablespace temporal''', on l'usuari crea els seus objectes temporals i fa els sort o ordenaments. |
− | :*Un perfil o profile d'usuari, que són les restriccions que pot tenir el seu compte (opcional). | + | :*'''Un perfil o profile d'usuari''', que són les restriccions que pot tenir el seu compte (opcional). |
Per exemple, connectat com l'usuari SYS, pots crear un usuari i la seva clau així: | Per exemple, connectat com l'usuari SYS, pots crear un usuari i la seva clau així: | ||
Línia 28: | Línia 28: | ||
TEMPORARY TABLESPACE temp; | TEMPORARY TABLESPACE temp; | ||
</pre> | </pre> | ||
− | Addicionalment, a cada usuari es pot assignar a un profile o perfil, que té dos propòsits principalment: | + | Addicionalment, a cada usuari '''es pot assignar a un profile o perfil''', que té dos propòsits principalment: |
− | :*Limita l'ús de recursos, la qual cosa és recomanable, per exemple en ambients de Desenvolupament. | + | :*'''Limita l'ús de recursos''', la qual cosa és recomanable, per exemple en ambients de Desenvolupament. |
− | :*Garanteix i reforça regles de Seguretat a nivell de comptes. | + | :*'''Garanteix i reforça regles de Seguretat a nivell de comptes'''. |
Línia 62: | Línia 62: | ||
En Oracle existeixen dos tipus de privilegis d'usuari. | En Oracle existeixen dos tipus de privilegis d'usuari. | ||
− | :*'''System | + | :*'''System:''' |
+ | ::- permet a l'usuari fer certes tasques sobre la BD, com per exemple crear un Tablespace. | ||
+ | ::- atorgats per l'administrador o per algú que hagi rebut el permís per administrar aquest tipus de privilegi. | ||
− | + | Exemples: | |
− | :del | + | ::- create session: per connectar-se a la base de dades |
− | : | + | ::- create table: per poder crear taules |
+ | ::- create sequence: per poder crear seqüències | ||
+ | ::- create view: per poder crear vistes | ||
+ | ::- create trigger: per poder crear disparadors dins del propi esquema | ||
+ | ::- create procedure: crear poder crear procediments i funcions | ||
+ | ::- execute any procedure: permet executar qualsevol procediment en qualsevol esquema | ||
+ | ::- create user: permet crear usuaris i especificar claus | ||
+ | ::- create role: permet crear rols | ||
+ | ::- drop user: permet eliminar usuaris | ||
− | Oracle 11g té 208 privilegis de sistema els quals poden ser vists consultant la vista: SYSTEM_PRIVILEGE_MAP | + | :*Oracle 11g té '''208 privilegis de sistema''' els quals poden ser vists consultant la vista: SYSTEM_PRIVILEGE_MAP |
− | + | :*Els privilegis de sistema: '''SYSDBA''' i '''SYSOPER'''. permeten que altres usuaris tinguin privilegis d'administradors de base de dades. | |
− | + | :*Atorgar diversos privilegis alhora: | |
<pre> | <pre> | ||
SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez; | SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez; | ||
</pre> | </pre> | ||
− | :*'''Object | + | |
+ | :*'''Object:''' | ||
+ | ::- permet a l'usuari realitzar certes accions en objectes de la BD, com una Taula, Vista, un Procedure o Funció, etc. | ||
+ | ::- per defecte un usuari només pot accedir als seus propis objectes ('''USER_OBJECTS'''). | ||
+ | ::- atorgats pel propietari de l'objecte, l'administrador o algú que hagi rebut aquest privilegi explícitament (amb '''GRANT OPTION'''). | ||
Per exemple, per atorgar permisos a una taula Vendes per a un usuari particular: | Per exemple, per atorgar permisos a una taula Vendes per a un usuari particular: | ||
+ | |||
<pre> | <pre> | ||
SQL> GRANT SELECT,INSERT,UPDATE ON analista.venta TO jperez; | SQL> GRANT SELECT,INSERT,UPDATE ON analista.venta TO jperez; | ||
</pre> | </pre> | ||
− | Addicionalment | + | |
+ | Addicionalment: | ||
+ | ::- podem restringir els DML a una columna de la taula. | ||
+ | ::- podem donar el priveligi de poder donar el privilegi (amb '''WITH GRANT OPTION'''). | ||
+ | |||
+ | Exemple: | ||
<pre> | <pre> | ||
SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH GRANT OPTION; | SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH GRANT OPTION; | ||
Línia 90: | Línia 110: | ||
==Assignar quotes a Usuaris== | ==Assignar quotes a Usuaris== | ||
− | Per defecte | + | Per defecte cap usuari té assignada quota en els Tablespaces i es tenen tres opcions per poder proveir a un usuari d'una quota: |
− | :*Sense límit, que permet a l'usuari usar tot l'espai disponible d'un Tablespace. | + | :* Sense límit, que permet a l'usuari usar tot l'espai disponible d'un Tablespace. |
:* Per mitjà d'un valor, que pot ser en kilobytes o megabytes que l'usuari pot usar. Aquest valor pot ser major o menor que la grandària del Tablespace assignat a ell. | :* Per mitjà d'un valor, que pot ser en kilobytes o megabytes que l'usuari pot usar. Aquest valor pot ser major o menor que la grandària del Tablespace assignat a ell. | ||
Línia 98: | Línia 118: | ||
:* Per mitjà del privilegi UNLIMITED TABLESPACE, es té prioritat sobre qualsevol quota donada en un Tablespace pel que tenen disponibilitat de tot l'espai incloent en SYSTEM i SYSAUX. | :* Per mitjà del privilegi UNLIMITED TABLESPACE, es té prioritat sobre qualsevol quota donada en un Tablespace pel que tenen disponibilitat de tot l'espai incloent en SYSTEM i SYSAUX. | ||
− | No es recomana donar quotes als usuaris en els Tablespaces SYSTEM i SYSAUX, doncs | + | No es recomana donar quotes als usuaris en els Tablespaces SYSTEM i SYSAUX, doncs normalment només els usuaris SYS i SYSTEM poden crear objectes en aquests. Tampoc donar quotes en els Tablespaces Temporal o del tipus Undo. |
==Rols== | ==Rols== | ||
− | + | :* Conjunt de privilegis que es poden atorgar a un usuari o a un altre Rol. | |
+ | :* Simplifiquen el treball dels DBA en l'assignació de privilegis. | ||
+ | :* Per defecte, quan es crea un usuari se li assigna el '''rol CONNECT''', que permet que l'usuari pugui connectar-se a la BD i crear els seus propis objectes en el seu propi esquema. D'una altra manera, hem d'assignar-los en forma manual. | ||
− | + | Exemple: | |
− | + | Creació del rol: | |
<pre> | <pre> | ||
− | SQL> CREATE ROLE appl_dba; | + | SQL> CREATE ROLE appl_dba; |
</pre> | </pre> | ||
Opcionalment, es pot assignar una clau al Rol: | Opcionalment, es pot assignar una clau al Rol: | ||
Línia 118: | Línia 140: | ||
SQL> GRANT appl_dba TO jperez; | SQL> GRANT appl_dba TO jperez; | ||
</pre> | </pre> | ||
− | + | També es poden assignar als rols privilegis sobre Objectes, per exemple en una Taula de Factures on només volem que es puguin fer Consultes i insercions: | |
<pre> | <pre> | ||
SQL> CREATE ROLE consulta; | SQL> CREATE ROLE consulta; | ||
Línia 129: | Línia 151: | ||
</pre> | </pre> | ||
'''Nota:''' Existeixen alguns rols predefinits, tals com: | '''Nota:''' Existeixen alguns rols predefinits, tals com: | ||
− | CONNECT | + | |
− | + | CONNECT, RESOURCE, DBA, SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, etc. | |
:*'''DBA:''' Té la majoria dels privilegis, no és recomanable assignar-ho a usuaris que no són administradors. | :*'''DBA:''' Té la majoria dels privilegis, no és recomanable assignar-ho a usuaris que no són administradors. |
Revisió de 21:35, 3 feb 2021
Contingut
Crear Usuaris i assignar privilegis
A tenir en compte a l'hora de crear usuaris i els privilegis i rols a assignar:
- El nom d'usuari no ha de superar 30 caràcters, no ha de tenir caràcters especials i ha d'iniciar amb una lletra.
- Un mètode d'autenticació. El mes comú és una clau o password, però Oracle 10g suporta altres mètodes (com biomètric, certificat i autenticació per mitjà de token).
- Un Tablespace default, el qual és on l'usuari va a poder crear els seus objectes per defecte, no obstant això, això no significa que pugui crear objectes, o que tingui una quota d'espai. Aquests permisos s'assignen de forma separada, excepte si utilitza el privilegi RESOURCE el que assigna una quota unlimited, fins i tot en el Tablespace SYSTEM! No obstant això si això ocorre, un. pot posteriorment moure els objectes creats en el SYSTEM a un altre Tablespace.
- Un Tablespace temporal, on l'usuari crea els seus objectes temporals i fa els sort o ordenaments.
- Un perfil o profile d'usuari, que són les restriccions que pot tenir el seu compte (opcional).
Per exemple, connectat com l'usuari SYS, pots crear un usuari i la seva clau així:
SQL> CREATE USER ahernandez IDENTIFIED BY ahz DEFAULT TABLESPACE users;
Si no s'indica un Tablespace per defecte, l'usuari pren el que està definit en la BD (generalment el SYSTEM). Per modificar el Tablespace default d'un usuari es fa de la següent manera:
SQL> ALTER USER jperez DEFAULT TABLESPACE datos;
També podem assignar als usuaris un Tablespace temporal on s'emmagatzemen operacions d'ordenament. Aquestes inclouen les clàusules ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX (també és utilitzat quan es creen Taules temporals).
SQL> CREATE USER jperez IDENTIFIED BY jpz DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
Addicionalment, a cada usuari es pot assignar a un profile o perfil, que té dos propòsits principalment:
- Limita l'ús de recursos, la qual cosa és recomanable, per exemple en ambients de Desenvolupament.
- Garanteix i reforça regles de Seguretat a nivell de comptes.
Exemples, quan es crea l'usuari o assignar un perfil existent:
SQL> CREATE USER jperez IDENTIFIED BY jpz DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp PROFILE resource_profile; SQL> ALTER USER jperez PROFILE perfil_desa;
Modificar comptes d'Usuari
Per modificar un usuari creat, per exemple canviar la seva clau, tenim la sintaxis:
SQL> ALTER USER NOMBRE_USUARIO IDENTIFIED BY CLAVE_ACCESO [DEFAULT TABLESPACE ESPACIO_TABLA] [TEMPORARY TABLESPACE ESPACIO_TABLA] [QUOTA {ENTERO {K | M } | UNLIMITED } ON ESPACIO_TABLA [PROFILE PERFIL];
Privilegis de Sistema i d'Objectes
En Oracle existeixen dos tipus de privilegis d'usuari.
- System:
- - permet a l'usuari fer certes tasques sobre la BD, com per exemple crear un Tablespace.
- - atorgats per l'administrador o per algú que hagi rebut el permís per administrar aquest tipus de privilegi.
Exemples:
- - create session: per connectar-se a la base de dades
- - create table: per poder crear taules
- - create sequence: per poder crear seqüències
- - create view: per poder crear vistes
- - create trigger: per poder crear disparadors dins del propi esquema
- - create procedure: crear poder crear procediments i funcions
- - execute any procedure: permet executar qualsevol procediment en qualsevol esquema
- - create user: permet crear usuaris i especificar claus
- - create role: permet crear rols
- - drop user: permet eliminar usuaris
- Oracle 11g té 208 privilegis de sistema els quals poden ser vists consultant la vista: SYSTEM_PRIVILEGE_MAP
- Els privilegis de sistema: SYSDBA i SYSOPER. permeten que altres usuaris tinguin privilegis d'administradors de base de dades.
- Atorgar diversos privilegis alhora:
SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez;
- Object:
- - permet a l'usuari realitzar certes accions en objectes de la BD, com una Taula, Vista, un Procedure o Funció, etc.
- - per defecte un usuari només pot accedir als seus propis objectes (USER_OBJECTS).
- - atorgats pel propietari de l'objecte, l'administrador o algú que hagi rebut aquest privilegi explícitament (amb GRANT OPTION).
Per exemple, per atorgar permisos a una taula Vendes per a un usuari particular:
SQL> GRANT SELECT,INSERT,UPDATE ON analista.venta TO jperez;
Addicionalment:
- - podem restringir els DML a una columna de la taula.
- - podem donar el priveligi de poder donar el privilegi (amb WITH GRANT OPTION).
Exemple:
SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH GRANT OPTION;
Assignar quotes a Usuaris
Per defecte cap usuari té assignada quota en els Tablespaces i es tenen tres opcions per poder proveir a un usuari d'una quota:
- Sense límit, que permet a l'usuari usar tot l'espai disponible d'un Tablespace.
- Per mitjà d'un valor, que pot ser en kilobytes o megabytes que l'usuari pot usar. Aquest valor pot ser major o menor que la grandària del Tablespace assignat a ell.
- Per mitjà del privilegi UNLIMITED TABLESPACE, es té prioritat sobre qualsevol quota donada en un Tablespace pel que tenen disponibilitat de tot l'espai incloent en SYSTEM i SYSAUX.
No es recomana donar quotes als usuaris en els Tablespaces SYSTEM i SYSAUX, doncs normalment només els usuaris SYS i SYSTEM poden crear objectes en aquests. Tampoc donar quotes en els Tablespaces Temporal o del tipus Undo.
Rols
- Conjunt de privilegis que es poden atorgar a un usuari o a un altre Rol.
- Simplifiquen el treball dels DBA en l'assignació de privilegis.
- Per defecte, quan es crea un usuari se li assigna el rol CONNECT, que permet que l'usuari pugui connectar-se a la BD i crear els seus propis objectes en el seu propi esquema. D'una altra manera, hem d'assignar-los en forma manual.
Exemple:
Creació del rol:
SQL> CREATE ROLE appl_dba;
Opcionalment, es pot assignar una clau al Rol:
SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;
Per assignar aquest Rol a un usuari:
SQL> GRANT appl_dba TO jperez;
També es poden assignar als rols privilegis sobre Objectes, per exemple en una Taula de Factures on només volem que es puguin fer Consultes i insercions:
SQL> CREATE ROLE consulta; SQL> GRANT SELECT,INSERT on analista.factura TO consulta;
I finalment assignem aquest rol amb aquest "perfil" a diferents usuaris finals:
SQL> GRANT consulta TO ahernandez;
Nota: Existeixen alguns rols predefinits, tals com:
CONNECT, RESOURCE, DBA, SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, EXP_FULL_DATABASE, IMP_FULL_DATABASE, etc.
- DBA: Té la majoria dels privilegis, no és recomanable assignar-ho a usuaris que no són administradors.
- SELECT_CATALOG_ROLE: No té privilegis de sistema, però té prop de 1600 privilegis d'objecte.
Per consultar els rols definits i els privilegis atorgats a través d'ells, utilitzi les vistes:
SQL> select * from DBA_ROLES; SQL> select * from DBA_ROLE_PRIVS order by GRANTEE;