![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola amigos:
Tengo el siguiente problema: Tengo un motor de datos Mysql, con 5 Base datos y 3 usuarios ejemplo: Base Datos, ventas, contabilidad, inventario, personal y automoviles Usuario; usuario1, usuario2 y usuario3. Quiero que el "usuario1" solo pueda ver la Base Datos "Ventas", que las otra ni siquiera se entere que existen, cualquier herramienta que use solo pueda ver y manipular esa Base Dato. O que el "usuario2" solo puede ver y manipular la Base Datos "Personal y Ventas", por ejemplo Existe alguna forma de hacerlo a nivel de usuario o BD, sin importar la herramienta que use para accesar a ella, ya sea Delphi, PHP, MysqlFront, MysqlManager, etc.. Gracias |
#2
|
||||
|
||||
Simplemente debes usar el sistema de permisos de MySql y crear usuarios nominales en la base de datos, solo permitiendo el acceso a las bases esperadas.
https://dev.mysql.com/doc/refman/8.4...eate-user.html https://dev.mysql.com/doc/refman/8.4/en/grant.html Saludos.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
|||
|
|||
Pero esto:
solo me permite administrar la BD, en cuestion. Pero me deja ver las demas igual? me refiero que ni siquiera saber que existe otra? Gracias, |
#4
|
|||
|
|||
Hoy es el dia de chatgpt
he puesto tu pregunta al chatgpt y su respuesta es: Para lograr lo que necesitas en MySQL, debes gestionar cuidadosamente los privilegios de los usuarios sobre las bases de datos. Puedes restringir el acceso de cada usuario a las bases de datos específicas que les corresponden y evitar que puedan ver o manipular otras bases de datos en el sistema. Los pasos generales son los siguientes: 1. Crear usuarios (si no existen) Si aún no has creado los usuarios, puedes hacerlo con el siguiente comando SQL: CREATE USER 'usuario1'@'%' IDENTIFIED BY 'password1'; CREATE USER 'usuario2'@'%' IDENTIFIED BY 'password2'; CREATE USER 'usuario3'@'%' IDENTIFIED BY 'password3'; Reemplaza % si solo deseas permitir el acceso desde un host específico, y ajusta las contraseñas según sea necesario. 2. Otorgar privilegios específicos a cada usuario Debes otorgar privilegios únicamente sobre las bases de datos que deseas que cada usuario pueda ver y manipular. Usuario1: Solo acceso a la base de datos ventas. GRANT ALL PRIVILEGES ON ventas.* TO 'usuario1'@'%'; Usuario2: Acceso a las bases de datos personal y ventas. GRANT ALL PRIVILEGES ON personal.* TO 'usuario2'@'%'; GRANT ALL PRIVILEGES ON ventas.* TO 'usuario2'@'%'; Usuario3: Si tiene acceso a otras bases de datos o si no tiene acceso a ninguna base de datos en particular, puedes configurar los privilegios según sea necesario. Ejemplo de acceso a la base de datos inventario: GRANT ALL PRIVILEGES ON inventario.* TO 'usuario3'@'%'; 3. Revocar acceso a otras bases de datos Asegúrate de que ningún usuario tenga privilegios en otras bases de datos. Esto es importante porque si un usuario tiene algún tipo de privilegio sobre una base de datos, podrá verla. Por ejemplo, para asegurarte de que usuario1 no pueda acceder a otras bases de datos como contabilidad o inventario, puedes ejecutar lo siguiente: REVOKE ALL PRIVILEGES ON contabilidad.* FROM 'usuario1'@'%'; REVOKE ALL PRIVILEGES ON inventario.* FROM 'usuario1'@'%'; REVOKE ALL PRIVILEGES ON personal.* FROM 'usuario1'@'%'; REVOKE ALL PRIVILEGES ON automoviles.* FROM 'usuario1'@'%'; Haz lo mismo para cada usuario según las bases de datos que no deben ver. 4. Evitar que los usuarios puedan listar todas las bases de datos Aunque hayas revocado los privilegios, los usuarios podrían aún ser capaces de listar todas las bases de datos usando herramientas como SHOW DATABASES. Para evitar esto, debes modificar el archivo de configuración de MySQL para que los usuarios solo puedan ver las bases de datos a las que tienen acceso.
Reinicia el servidor MySQL para que los cambios surtan efecto:
En Windows, usa el Administrador de Servicios para reiniciar MySQL. 5. Aplicar los cambios Finalmente, después de realizar todos estos pasos, aplica los cambios ejecutando: FLUSH PRIVILEGES; Última edición por aposi fecha: 01-10-2024 a las 22:06:23. |
#5
|
|||
|
|||
recuerda tambien que el simbolo "%" equivale a "desde cualquier host o localizacion" por si tienes que operar desde el propio servidor (entonces en vez de % seria localhost o la propia IP del servidor MySQL)
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Descargar solo txt FTP | ronald_tro | Varios | 18 | 01-05-2014 18:25:38 |
Solo ejecutar un procedimiento cuando solo la ventana esta activa | feliz-58 | Varios | 4 | 10-08-2013 19:39:04 |
Solo se vive una vez... | movorack | La Taberna | 1 | 04-05-2010 06:01:19 |
.Net solo C# | jevo19100 | .NET | 5 | 24-01-2006 02:44:28 |
mostrar SOLO cliente de los que tengo un sólo registro | Giniromero | SQL | 15 | 11-06-2004 12:33:19 |
![]() |
|