Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas

lunes, 12 de marzo de 2012

PostgreSQL: Login como usuario de una BD

Lo típico de PostgreSQL es entrar a través de la consola con el cliente psql lo que hacemos de la siguiente forma:

usuario@maquina:~$ sudo su - postgres
postgres@maquina:~$ psql
psql (9.1.3)
Type "help" for help.

postgres=>

El problema viene cuando queremos acceder a otra db diferente de 'postres' i con un usuario diferente de 'postgres'... lo hariamos así:

usuario@maquina:~$ psql -d nombreBD -U usuario
psql: FATAL:  Peer authentication failed for user "usuario"

ZASCA!!! ya tenemos el fallo...
Para arreglar este fallo debemos editar el archivo /etc/postgresql/9.1/main/pg_hba.conf

Hacemos:

usuario@maquina:~$ sudo gedit /etc/postgresql/9.1/main/pg_hba.conf

Cambiamos la linea donde pone:
local                        all                        all                                 peer
por:
local                        all                        all                                 md5
También podemos poner (solución ofrecida por G. Ráez Zafra):
local                        all                        all                                 password

Reiniciamos el servicio haciendo:

usuario@maquina:~$ sudo su - postgres
postgres@maquina:~$ /etc/init.d/postgresql restart


Ahora ya lo tenemos... Hacemos:


usuario@maquina:~$ psql -d nombreBD -U usuario
Password for user usuario:
psql (9.1.3)
Type "help" for help.

nombreDB=>

Otra solución (esta ofrecida por L. M. Facerias Peralvo) si no quereis editar els archivo /etc/postgresql/9.1/main/pg_hba.conf és entrar con el siguiente comando:

usuario@maquina:~$ psql -U super -h localhost rural

sábado, 5 de noviembre de 2011

Diferencia entre Identifying y Non-Identifying Relationship

Hola a todos...

Estoy empezando a usar el MySQL Workbench y creando un diagrama EER me surgió la duda de que diferencia habia entre una relacion identificadora y una relación no identificadora.

Despues de googlear bastante y de leer mucha info en inglés me he topado con una explicació de Leonardo R que en mi opinión es muy facil de entender.

'Copipasteo' literalmente su explicación:

Una relación identificadora (identifying relationship), es una relación de uno-a-muchos, en la que la clave primaria de una entidad fuerte es absorbida por una entidad débil. Se dice que es una entidad débil, porque por sí misma no tiene modo de identificarse de forma única (no tiene clave primaria).

Un ejemplo: tenemos una aplicación que registra el ingreso de los empleados a las instalaciones de la organización. he aquí el modelo:

empleado { id_empleado, nombre, apellido, departamento, cargo }
ingreso_a_instalaciones { id_empleado, hora_ingreso, puerta }

En este caso, existe una relación identificadora porque cada registro de ingreso_a_instalaciones *requiere* que se especifique la id_empleado. De no especificarse, no se podría saber quién ingresó a las instalaciones. Eso convierte a cada ingreso_a_instalaciones en una entidad débil, que depende de la existencia de otra entidad (el empleado)

--

Una relación no identificadora (non-identifying relationship) es una relación de uno-a-muchos donde una entidad no depende de la existencia de otra, porque tiene su propia clave principal.

Un ejemplo: tenemos una aplicación que lleva la nómina:

empleado { id_empleado, nombre, apellido, cargo, departamento, id_empleado_jefe }

En este caso, yo puedo usar la clave foránea id_empleado_jefe para establecer qué otro empleado es jefe de un empleado en particular, pero en sí, cada empleado tiene su id_empleado, por lo que la relación con el *empleado jefe* no tiene para nada que ver con la existencia del empleado común.