- Los privilegios son permisos para ejecutar sentencias SQL en particular o acceso a los distintos objetos que posea otros usuarios.
- Los privilegios dan acceso a los usuarios a los datos que no poseen. Los roles con grupos de privilegios que facilitan la administración de los privilegios. Pero los privilegios se pueden manejar de manera explícita en algunas circunstancias.
- Al crear un usuario, solo puede acceder a los objetos que el mismo a creado.
- Las sentencias para conceder o revocar privilegios son grant (conceder) y revoke (revocar)
Los privilegios que pueden otorgarse sobre objetos son los siguientes:
Privilegio
|
Capacidades Otorgadas
|
select |
Puede consultar a un objeto. |
insert |
Puede insertar filas en una tabla o vista. Puede especificarse
las columnas donde se permite insertar dentro de la tabla o vista. |
update |
Puede actualizar filas en una tabla o vista. Puede
especificarse las columnas donde se permite actualizar dentro de
la tabla o vista. |
delete |
Puede borrar filas dentro de la tabla o vista. |
alter |
Puede alterar la tabla. |
index |
Puede crear índices de una tabla. |
references |
Puede crear claves ajenas que referencie a esta tabla. |
execute |
Puede ejecutar un procedimieto, paquete o función. |
connect |
Puede realizar la conexión a la base de datos |
resource |
Puede hacer lectura de recursos |
La información de los privilegios otorgados se almacena en el diccionario de datos. Estos datos son accesibles a través de las siguientes vistas del diccionario de datos:
Vista
|
Contenidos
|
DBA_ROLES |
Nombres de los roles y su estado del password. |
DBA_ROLES_PRIVS |
Usuarios a los que han sido otorgados roles. |
DBA_SYS_PRIVS |
Usuarios a los que han sido otorgados privilegios del sistema. |
DBA_TAB_PRIVS |
Usuarios a los que han sido otorgados privilegios sobre
objetos. |
DBA_COL_PRIVS |
Usuarios a los que han sido otorgados privilegios sobre
columnas de tablas. |
ROLE_ROLE_PRIVS |
Roles que han sido otorgados a otros roles. |
ROLE_SYS_PRIVS |
Privilegios de sistema que han sido otorgados a roles. |
ROLE_TAB_PRIVS |
Privilegios de tabla que han sido otorgados a roles. |
Ejemplos de privilegios
Sintaxis
|
Acción
|
grant connect to 'nicolas': |
Permite que el usuario nicolas conectarse a la base de datos. |
grant resource to 'nicolas': |
Perte al usuario nicolas hacer lectura de los recursos. |
grant select on otratabla to nicolas; |
Permite al usuario nicolas realizar un select en la tabla
otratabla. |
grant insert on otratabla to nicolas; |
Permite al usuario nicolas realizar un insert en la tabla
otratabla. |
grant update on otratabla to nicolas; |
Permite al usuario nicolas realizar un update en la tabla
otratabla. |
grant delete on otratabla to nicolas; |
Permite al usuario nicolas realizar un delete en la tabla
otratabla. |
grant execute on mifuncion to nicolas; |
Permite al usuario nicolas ejecutar la función mifuncion. |
select *
from dba_tab_privs where grantee = 'nicolas'; |
Lista los privilegios que el usuario nicolas tiene en el
sistema. |
grant select on pedro.usuarios to nicolas;Lo que permite al usuario nicolas hacer un select de la tabla usuarios perteneciente al usuario pedro.
Es importante tener en cuenta que normalmente no se ocupan los privilegios a un usuario específico, si no que a roles, producto que por ejemplo tenemos 10 usuarios, perteneciente al rol vendedor, y nosotros aplicamos el privilegio al rol vendedor. Ejemplo:
create role ROLE_VENDEDOR;
grant insert on ventas to ROLE_VENDEDOR;
0 comentarios:
Publicar un comentario