Anda di halaman 1dari 3

1- Cuando hablamos de "esquema" en Oracle, hacemos referencia al espacio de un

usuario

2- Ver tablas de un usuario:


- Select table_name from user_tables; --> ver los nombres de
las tablas pertenecientes al esquema actual
- Select table_name from all_tables where owner='HR'; --> si estamos
conectados como otro usuario y queremos ver las
tablas del esquema HR, as como
las de otros esquemas a las que
HR tenga acceso. Necesitaremos
tener acceso a todas las tablas
para poder verlas,
necesitaramos el privilegio SELECT ANY TABLE.

3- Si no queremos permitir ver las tablas de un esquema determinado, podramos


realizar un procedimiento que otorgue permisos sobre
determinadas tablas.

4- Si se posee permiso a una tabla de otro esquema, dicha tabla debe ser llamada
colocando el nonmbre del esquema, seguido por un
punto y luego el nombre de la tabla. Ej: HR.REGIONS

5- Ver las restricciones (constraint) de la tabla "EMP"

select owner, table_name, column_name, constraint_name, constraint_type,


search_condition, status
from all_constraints join all_cons_columns
using(owner,table_name,constraint_name)
where table_name='EMP';

Notas:
Owner es el nombre del esquema en el que se encuentra la tabla.
Tipo de constraint sobre tabla puede ser: PRIMARY KEY (P), FOREIGN KEY (R),
UNIQUE (U), CHECK (C).
El nombre de una constraint es nico por esquema.

6- desc NombreTabla/NombreVista --> muestra la estructura de la tabla


NombreTabla/NombreVista;

7- desc ALL_VIEWS;
USER_VIEWS (informacin sobre vistas del usuario)
ALL_VIEWS (informacin sobre todas las vistas a las que se tiene permiso)
DBA_VIEWS (informacin sobre todas las vistas de la base de datos).

8- select text from all_views where view_name='EMP_DETAILS_VIEW' and owner='HR';


--> Muestra "el SELECT" que crea la vista EMP_DE...

Nota: Si no se visualiza toda la select de la vista, escribir set long 2000 (o


un valor mayor)
9- ROLE: Esta sentencia sirve para crear un rol de usuario. Un rol es una forma de
agrupar permisos (o privilegios) para asignarlos
luego a los usuarios. Cada usuario puede tener varios roles.
(https://ora.u440.com/usuarios/create%20role.html)
- CREATE ROLE: Crear un role
- ALTER ROLE: ...
- SET ROLE: ...
- select privilege from dba_sys_privs where grantee = 'Mi_ROL'; -->
Ver los privilegios del role Mi_ROL
- select * from DBA_ROLES; --> Muestra los
roles existentes en la BD

10- PROFILE: Un perfil de usuario es una forma de limitar los recursos que puede
utilizar un usuario. Cada usuario puede tener un
nico perfil. Antes de asignar un perfil a un usuario es necesario que este
perfil exista en la base de datos. Un perfil se asigna
en la creacin de un usuario CREATE USER o modificandolo ALTER USER.
(https://ora.u440.com/usuarios/create%20profile.html)

Ejemplo de script de creacin de perfil:

CREATE PROFILE app_user LIMIT


SESSIONS_PER_USER 2 --
CPU_PER_SESSION 10000 -- decimas de segundo
CPU_PER_CALL 1 -- decimas de segundo
CONNECT_TIME UNLIMITED -- minutos
IDLE_TIME 30 -- minutos
LOGICAL_READS_PER_SESSION DEFAULT -- DB BLOCKS
LOGICAL_READS_PER_CALL DEFAULT -- DB BLOCKS
-- COMPOSITE_LIMIT DEFAULT --
PRIVATE_SGA 20M --
FAILED_LOGIN_ATTEMPTS 3 --
PASSWORD_LIFE_TIME 30 -- dias
PASSWORD_REUSE_TIME 12 --
PASSWORD_REUSE_MAX UNLIMITED --
PASSWORD_LOCK_TIME DEFAULT -- dias
PASSWORD_GRACE_TIME 2 -- dias
PASSWORD_VERIFY_FUNCTION NULL;

Ejemplo de script alteracin de perfil:


ALTER PROFILE default LIMIT IDLE_TIME 20;

11- GRANT: Esta sentencia sirve para dar permisos (o privilegios) a un usuario o a
un rol. Si un permiso se asigna a rol especial
PUBLIC significa que puede ser ejecutado por todos los usuarios.
(https://ora.u440.com/usuarios/grant.html)

- GRANT SELECT ON NombreTabla TO NombreUsuario; --> Otros permisos


sobre objetos: INSERT, UPDATE, DELETE
- GRANT CREATE SESSION TO miusuario; --> Permisos para acceder a
la base de datos (permiso de sistema)
- GRANT SELECT ON T_PEDIDOS TO PUBLIC; --> Permisos de solo lectura
para todos
- GRANT role TO {user, | role, |PUBLIC} [IDENTIFIED BY password] [WITH ADMIN
OPTION]
- GRANT SELECT (empno), UPDATE (sal) ON pepe.tabla TO miusuario
Nota:
- select * from system_privilege_map; (Podemos obtener la lista de permisos
del sistema)
- El GRANT puede ser usado por el usuario SYSTEM o por el propietario de la
tabla, todo dependera de los permisos que este posea
- Permisos de sistema: CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE
PROCEDURE, CREATE SYNONYM, ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER SYNONYM,
DROP TABLE, DROP VIEW, DROP PROCEDURE, DROP SYNONYM
- ALL PRIVILEGES puede ser usado para asignar todos los privilegios posibles
- Con la opcion WITH HIERARCHY OPTION damos permisos sobre todos los
subojetos, incluso sobre los que se creen despues de ejecutar el GRANT
- Existen roles predefinidos con privilegios diversos:
- SYSDBA, SYSOPER, OSDBA, OSOPER, EXP_FULL_DATABASE, IMP_FULL_DATABASE,
SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE
- Ej: Permisos del rol SYSOPER:
CREATE SPFILE
STARTUP and SHUTDOWN
ALTER DATABASE: open, mount, back up
ARCHIVELOG and RECOVERY
Includes the RESTRICTED SESSION privilege

- Cada tipo de objeto tiene su propio conjunto de permisos:


- Tables: select, insert, update, delete, alter, debug, flashback, on
commit refresh, query rewrite, references, all
- Views: select, insert, update, delete, under, references, flashback,
debug
- Sequence: alter, select
- Packeges, Procedures, Functions (Java classes, sources...): execute,
debug
- Materialized Views: delete, flashback, insert, select, update
- Directories: read, write
- Libraries:execute
- User defined types: execute, debug, under
- Operators: execute
- Indextypes: execute

12- REVOKE: Esta sentencia sirve para quitar permisos (o privilegios) a un usuario
o a un rol. (https://ora.u440.com/usuarios/revoke.html)

- REVOKE SELECT ON TableName FROM NombreUser; --> Elimina el permiso de


SELECT en TableName para el usuario NombreUser
- REVOKE ALL PRIVILEGES FROM miusuario; --> Quita todos los permisos del
usuario miusuario
- REVOKE ALL ON T_PEDIDOS FROM miusuario; --> Elimina todos los
permisos en T_PEDIDOS para el usuario NombreUser
- REVOKE role FROM {user, | role, |PUBLIC} --> Elimina, el rol
asignado a user
- La opcin FORCE, quita todos los privilegios y descompila todos sus
objetos.

13- select privilege from dba_sys_privs where grantee = 'CONNECT';

14-

Anda mungkin juga menyukai