Oracle

El error ORA-30926 como resultado de una operación Merge

6.66667

El error ORA-30926 suele producirse cuando se realizan operaciones Merge, y lo normal es que nos deje algo descolocados, ya que la descripción del mismo no da demasiada información sobre lo que está pasando:
ORA-30926: unable to get a stable set of rows in the source tables.

Normalmente este error se produce cuando en la operación Merge a una fila destino que hay que actualizar le corresponden más de una fila en la tabla origen. Como el motor no sabe qué registro escoger devuelve un error. Es un problema de duplicidad en la tabla origen...

Vistas materializadas de Oracle para optimizar un Datawarehouse

9.33333

Como las cargas de un Data warehouse se realizan de manera periódica, y además es habitual la creación de tablas agregadas para mejorar la eficiencia y tiempo de respuesta de nuestros informes, un recurso de optimización física que puede aportar grandes mejoras es la utilización de vistas materializadas.

La vista materializada no es más que una vista, definida con una sentencia SQL, de la que además de almacenar su definición, se almacenan los datos que retorna, realizando una carga inicial y después cada cierto tiempo un refresco de los mismos.

Así, si tenemos un Datawarehouse que se actualiza diariamente...

Oracle SQL Developer

8.2

Oracle SQL DeveloperOracle SQL Developer es la herramienta gráfica gratuita que proporciona Oracle para que no sea necesario utilizar herramientas de terceros (como el conocido TOAD, o el PL/SQL Developer) para desarrollar, o simplemente para ejecutar consultas o scripts SQL, tanto DML como DDL, sobre bases de datos Oracle.
La apariencia y funcionalidad es similar a la de otras herramientas de este tipo, por lo que es una buena opción si no tenemos especial predilección por otras herramientas...

Consulta de contraseñas de usuario de Oracle

8

Por obvias razones de seguridad no se puede consultar en claro la contraseña de los usuarios de la base de datos, pero un usuario administrador como SYSTEM sí que tiene privilegios para consultar el password encriptado:

SQL> select password from dba_users where username='SCOTT';
PASSWORD
-----------------------------
F894844C34402B67

La utilidad de esto está en que lo mismo que nos retorna la SELECT se puede utilizar en una sentencia de modificación de la contraseña;

SQL> alter user scott identified by values 'F894844C34402B67';

Con esto no hemos hecho nada, ya que le hemos asignado a SCOTT la misma contraseña que tenía (TIGER), pero si cambiamos la contraseña:

SQL> alter user scott identified by nuevacontraseña;
SQL> connect scott/nuevacontraseña
Connected.

Y ahora queremos volver a ponerle la contraseña inicial:

SQL> connect system/dbapwd
Connected.
SQL> alter user scott identified by values 'F894844C34402B67';
User altered.

SQL> connect scott/tiger
Connected.

GRANTS WITH GRANT OPTION: La propiedad transitiva en la concesión de permisos

10

La instrucción grant se utiliza para conceder determinados permisos genéricos o bien permisos sobre objetos a usuarios de la base de datos.

La sintaxis de la misma es la siguiente:

GRANT [privilegios_de_sistema | roles]
TO [usuarios | roles |PUBLIC] {WITH GRANT OPTION }

para conceder permisos genéricos


GRANT [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ON objeto
TO [usuario | rol | PUBLIC] {WITH GRANT OPTION}

para conceder permisos sobre objetos

La sintaxis es muy sencilla, y los privilegios los puede conceder el usuario propietario de los objetos, o un usuario con privilegios de concesión de permisos sobre objetos que no son suyos (DBA's).

Lo que quería comentar es la utilización de la opción WITH GRANT OPTION, que permite que el usuario al que le han concedido permisos pueda a su vez concederlos a otros usuarios.

Mostraré la utilizad de esta opción con un ejemplo:
Imaginemos que tenemos un usuario 'U_VISTA', que crea una vista con una consulta que consulta información de un objeto de otro usuario 'U_DATOS'. Hasta aquí es sencillo, ya que con un GRANT del usuario 'U_DATOS' al usuario 'U_VISTA' sobre esos objetos el tema está solucionado.
U_DATOS:

SQL> GRANT SELECT ON TABLA TO U_VISTA;

Distribuir contenido

Últimos estados

Investigando

   - negrito_cl hace 1 día -

Busco Consultor ARTUS para proyecto en Panamá, será contratado en Mx, al concluir regresará en México.Enviar CV bhernandez@intellego.com.mx

   - Intellego hace 3 días -

Intellego es líder en consultoría y servicios para la gestión de información.

   - Intellego hace 3 días -

Infográfico sobre el nuevo escenario de la información http://bit.ly/dflh8B

   - carlos hace 1 semana -

Anunciando el laboratorio de Dataprix: www.labs.dataprix.com

   - carlos hace 1 semana -