ASIX-M10-UF2. Seguretat en un SGBD: Rols, usuaris, permisos

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Usuaris

Els podem classificar com a informàtics i no informàtics de la següent manera:

Un Usuari és un element de la base de dades que conté la informació necessària per tal de què un usuari de la base de dades (administrador, programador, usuari final, aplicació, ...), s'autentigui contra el SGBD per tal de què aquest li assigni els permisos i/o controli les restriccions corresponents a l'usuari.

Un usuari es composa bàsicament de Nom i Contrasenya. Per tal de crear un usuari en una base de dades s'utilitza el següent codi SQL:

CREATE USER <nom_usuari> IDENTIFIED BY <contrasenya>

Per tal de modificar la contrasenya d'accés d'un usuario s'utilitza la següent comanda:

ALTER USER <nom_usuari> IDENTIFIED BY <nova_contrasenya>

I finalment per tal d'esborrar un usuari es pot utilitzar la següent comanda:

DROP USER <nom_usuari>

És necessari que qui executi les comandes prèvies posseeixi els permisos d'administrador sobre la base de dades o tingui els privilegis per a la gestió d'usuaris.

Rols

Un Rol és una abstracció que, entre d'altres coses, facilita la gestió de privilegis i restriccions sobre els objectes d'una base de dades. A l'igual que els usuaris, als rols se'ls defineixen permisos i restriccions. A un usuari se li poden assignar un o més rols, i un rol pot ser assignat a un o molts usuaris. Quan un usuari té assignat un rol té els mateixos privilegis i restriccions que el rol.

Per tal de definir un nou rol s'utilitza la següent comanda:

CREATE ROLE <nom_rol>

Per tal d'esborrar el rol:

DROP ROLE <nom_rol>

Pe assignar un rol a un usuari es pot utilitzar la següent comanda SQL:

GRANT <nom_rol> TO <nom_usuari>

Per tal d'eliminar un rol a un usuario es pot utilitzar la següent comanda:

REVOKE <nombre_rol> FROM <nombre_usuario>

Privilegis

Els privilegis es poden assignar als rols, i també als usuaris directament. Aquests privilegis es poden establir sobre taules, vistes, ... o bé directament als camps d'una taula.

El llistat de possibles privilegis suportats depèn del SGBD.

Assignar i Revocar Privilegis

A SQL, la sintaxi per l'assignació de privilegis a rols o a usuaris per a un objecte de la base de dades és la següent:

GRANT <privilegi> ON  <objecte_bd> TO {<nom_usuari> |  <nom_rol> } 

D'altra banda, per revocar els privilegis prèviament assignats a usuaris o rols es pot utilitzar la sigüent sintaxi:

REVOKE <privilegi> ON <objecte_bd> FROM {<nom_usuari> | <nom_rol>}

Existeix un privilegi especial que li permet concedir privilegis a d'altres rols o usuaris. Per fer-ho és necessari afegir la sentència WITH GRANT OPTION al final del SQL utilitzat per atorgar privilegis. Para revocar aquest privilegi especial és necessari agregar la clàusula CASCADE al final de la comanda per tal de revocar privilegis. Existeix a més a més un constructor que permet establir tots els privilegis possibles mitjançant una sola sentència: ALL PRIVILEGES.

GRANT {ALL PRIVILEGES | <privilegi> } ON <objecte_bd> TO {<nom_usuari> | <nom_rol>}  [WITH GRANT OPTION]

I la sintaxi per revocar privilegis seria:

REVOKE {ALL PRIVILEGES | <privilegi> } ON <objecte_bd> FROM {<nom_usuari> | <nom_rol>} [CASCADE]

Per tal de què es pugui executar una acció de concedir un o més privilegis sobre un objecte de la base de dades, qui està executant el procediment ha de tenir, a més a més dels privilegis a atorgar, els permisos per atorgar-los a d'altres usuaris o rols.


creat per Joan Quintana Compte, octubre 2014

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines