Pero ¿Cómo puedo hacer ahora para que ese usuario no pueda leer ni tenga ningún permiso sobre el resto de bases de datos?
1 respuesta
Respuesta de bankhacker
1
1
bankhacker, Objetivos: Trabajar como WebMaster Freelance en proyectos de...
MySQL Grant: Al darle la instrucción: insert into db values ('localhost', 'basededatosconcreta', 'nombredeusuario', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'); Le estás diciendo a MySQL que ese usuario sólo puede acceder a esa base de datos. En caso de que veas que también puede acceder a otras, será debido a que tienes definido, sin saberlo, en MySQL que todos los usuarios pueden acceder a todas las bases de datos. Esto lo puedes verificar de la siguiente forma: mysql> SELECT Host, Db, User FROM db; +-----------+----------------+-----------+ | Host | Db | User | +-----------+----------------+-----------+ | % | test | | | % | test\_% | | | localhost | mibasededatos | usuario01 | +-----------+----------------+-----------+ Si en vez de algo así, encontrarás algo como lo siguiente: mysql> SELECT Host, Db, User FROM db; +-----------+----------------+-----------+ | Host | Db | User | +-----------+----------------+-----------+ | % | test | | | % | test\_% | | | % | % | % | +-----------+----------------+-----------+ Estaría indicando que todos los usuarios tienen permisos para acceder a todas las bases de datos. Para quitarlo, simplemente ejecutas: mysql> DELETE FROM db WHERE Host='%' AND Db='%' AND User='%'; Luego, en la línea de comando de Linux, tecleará: mysqladmin --user=root -pmiclavesecreta reload
Viendo tus respuestas me doy cuenta de que Linux (y sus herramientas) tiene la calidad suficiente para adopatar una posición dominante, pero que quizás el problema sea que falten expertos en Linux. Gracias.