elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Permisos en base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Permisos en base de datos  (Leído 3,123 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Permisos en base de datos
« en: 15 Septiembre 2014, 16:31 pm »

Os comento, tengo un servidor sin panel administrador así que lo hago todo a comandos.

Tengo varias bases de datos y me conecto a las bases de datos con root, se, para matarme, pero en este caso no es nada importante.

El problema es que cuando creo un nuevo usuario, aunque no tenga SUPER ni GRANT, este nuevo usuario puede ver todas las bases de datos del sistema y no quiero que las vea  :-[

Tengo phpmyadmin pero prefiero aprender a comandos... pongo captura:



Creo que el problema está que las bases de datos están en modo "mirarme todos como la meneo", entonces mi duda es ¿Cómo cambiarlo con consola? y ¿Cómo crear una nueva base de datos que sólo vea el nuevo usuario y no otros usuarios similares?

Gracias!


« Última modificación: 16 Septiembre 2014, 02:30 am por dimitrix » En línea




Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #1 en: 15 Septiembre 2014, 17:04 pm »

http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html


http://dev.mysql.com/doc/refman/5.5/en/show-grants.html

A leer.

Tengo entendido de que todo lo que muestras en pantalla son tipos de privilegios, no hay usuarios grant, hay usuarios con privilegios GRANT. Si no quieres que vean tus base de datos debes desactivar la casilla SHOW DATABASES.

Pero para asegurarte mejor lee la documentación con calma.


« Última modificación: 15 Septiembre 2014, 17:23 pm por DonVidela » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #2 en: 15 Septiembre 2014, 17:07 pm »

Citar
" The SHOW DATABASES privilege enables the account to see database names by issuing the SHOW DATABASE statement. Accounts that do not have this privilege see only databases for which they have some privileges, and cannot use the statement at all if the server was started with the --skip-show-database option. Note that any global privilege is a privilege for the database."

No se si funcione esto porque nunca lo he probado, pero si quieres algo localizado podrias intentar con:

Código
  1. REVOKE SHOW DATABASES ON *.* FROM 'usuario' @ 'localhost';
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #3 en: 15 Septiembre 2014, 18:36 pm »

Mi duda es... si deja de ver las bases dedatos, no tendría pemisos? Creo que sí...

Me he leido todo, lo he probado y nop...
En línea




MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #4 en: 15 Septiembre 2014, 20:03 pm »

Pues tras probar mucho, me encontre con que:

Código
  1. SHOW DATABASES;

Siempre regresa las bases de datos en las que tienes alguna clase de privilegios. Los privilegios que muestras son globales así que cualquier privilegio que agregues de esa lista hara que el usuario pueda ver todas las bases de datos.

Es mejor si agregas solo los privilegios necesarios para la base de datos en especifico, si es que no requieres permisos globales.

Por ejemplo para otorgar select en una base de datos:

Código
  1. GRANT SELECT ON `basededatos`.* TO 'usuario'@'host';

(Me parece que TO usuario tambien funciona si no necesitas especificar el host.)

Hara que basededatos aparezca en SHOW DATABASES.

Para dar todos los permisos en una base de datos:

Código
  1. GRANT ALL PRIVILEGES ON `basededatos`.* TO 'usuario'@'host';

Mas información en cuanto a syntaxis:

http://dev.mysql.com/doc/refman/5.1/en/grant.html
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #5 en: 16 Septiembre 2014, 02:18 am »

GENIAL MinusFour ¡Funciona!

Lo único que para dar todos los permisos lo hago con:

Código
  1. GRANT ALL ON basededatos.* TO 'usuario'@'localhost';

Ya que si pongo las comillas en basededatos no me funciona.

En fin, te debo una, cualquier cosa me dices :-)
« Última modificación: 16 Septiembre 2014, 02:25 am por dimitrix » En línea




MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #6 en: 16 Septiembre 2014, 03:10 am »

GENIAL MinusFour ¡Funciona!

Lo único que para dar todos los permisos lo hago con:

Código
  1. GRANT ALL ON basededatos.* TO 'usuario'@'localhost';

Ya que si pongo las comillas en basededatos no me funciona.

En fin, te debo una, cualquier cosa me dices :-)

No son comillas, son backticks:

`

Citar
An identifier may be quoted or unquoted. If an identifier contains special characters or is a reserved word, you must quote it whenever you refer to it.

The identifier quote character is the backtick (“`”):

http://dev.mysql.com/doc/refman/4.1/en/identifiers.html
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Permisos en base de datos
« Respuesta #7 en: 16 Septiembre 2014, 04:05 am »

Eso explica muchas cosas xDDDDD

Los he usado muchas veces en queries, pero en la consola me parece todo los mismos  :xD

Gracias de nuevo ^^
En línea




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines