Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AULA: 7LA
Nm. Control
11320505
HORARIO: 08:00 A.M.-09:00 A.M.
Tenemos la opcin de especificar la contrasea con su valor en hash. Este valor debe ser
generado anteriormente con la funcin PASSWORD() de MySQL:
+-------------------------------------------+
| PASSWORD('mipassword')
+-------------------------------------------+
| *CEE870801502ACAD44FA46CA2CA4F58C2B721A67 |
+-------------------------------------------+
En el siguiente ejemplo, asignamos todos los privilegios posibles al usuario foo (si no existe
se crea) sobre todas las bases de datos y tablas, para conexiones desde localhost
nicamente y adems le concedemos el permiso GRANT para que tenga la opcin de
asignar permisos a otros usuarios:
REPLICATION
SLAVE,
SELECT,
SHOW
DATABASES,
SHOW
VIEW,
[...]
[...]
Como podis observar, cuando los privilegios hacen referencia a bases de datos, tablas o
hosts distintos se ejecuta un comando por cada uno de ellos, no se puede englobar todo en
una nica ejecucin ya que se almacena en registros distintos dentro de la tabla de
privilegios.
+-------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
Una vez visualizados los privilegios con el comando SHOW GRANTS, eliminamos los que
estimemos oportuno:
En el caso de foo@localhost vemos que tiene todos los privilegios para todas las bases de
datos, en lugar de eliminar completamente esa entrada de privilegios podemos hacerla ms
restrictiva, por ejemplo manteniendo todos los permisos excepto INSERT:
ERROR 1141 (42000): There is no such grant defined for user 'foo' on host '%'
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE,
'*CEE870801502ACAD44FA46CA2CA4F58C2B721A67' |
+---------------------------------------------------------------------------+
FLUSH PRIVILEGES
El comando FLUSH PRIVILEGES sirve para recargar la tabla de privilegios pero slo es
necesario
cuando
se
manipulan
directamente
las
tablas
de
privilegios
ejecutando INSERT, DELETE, etc en lugar de usar los comandos GRANT y REVOKE:
Es decir, en los casos que he especificado en este artculo no es necesario utilizar este modo
de recargar los privilegios, slo sera necesario si crearamos o eliminaramos los usuarios a
mano directamente sin los comandos especficos para ello de MySQL:
-> VALUES('localhost','foo',mipassword'),
-> 'Y','Y','Y','Y','Y','Y','N','N','N','Y','Y','Y','Y','Y');
ROLES Y PERMISOS
El siguiente paso es crear el rol al que vamos a asociar el usuario que recin hemos creado.
Este rol va a pertenecerle a dbo. No podemos darle sus permisos directamente en el script
que se crea en la carpeta Database Roles de Security, esa parte tendremos que aadirla en
10
11
Si no posees una instalacin de PostgreSQL como servidor, te invitamos a que la hagas a travs
de este nanotutorial: Instalacin de PostgreSQL Server.
Crear usuario
Para crear un usuario lo haremos con el siguiente comando:
CREATE USER nanotutoriales PASSWORD 'password';
12
Eliminar usuario
Si deseamos eliminar un usuario debemos ejecutar el siguiente comando:
DROP USER nanotutoriales;
13
ALTER ROLE
El manejo de roles en PostgreSQL permite diferentes configuraciones, entre ellas estan:
14
15
16
17