Un usuario de base de datos para varias bases de datos
Una aplicación que usa dos bases de datos —una principal y un esquema aparte para un back office, por ejemplo— no necesita dos inicios de sesión. Concede a un usuario acceso a ambas.
Dar a un usuario otra base de datos
Databases → Database users → en la fila del usuario, Add database.
Se te pide el nombre corto de la base de datos (shop, no youracct_shop).
El usuario conserva su contraseña actual y su acceso actual; la nueva base de datos
se le añade.
Cada fila de esa tabla muestra a qué puede llegar el usuario actualmente:
app Databases: shop, admin Access: localhost only
Un usuario que aún no tiene nada lee no databases yet.
Quitar una
En la misma fila, Remove database. El botón aparece una vez que el usuario tiene al menos una base de datos. Se te pregunta cuál, y viene precargado cuando solo hay una para elegir.
Quitar una base de datos de un usuario no elimina al usuario, y no toca la base de datos. El usuario conserva su contraseña y todas las demás bases de datos que tiene. Ese es el objetivo: antes de que esto existiera, la única manera de retirar el acceso era eliminar al usuario, lo que rompía cada sitio que aún iniciaba sesión con él.
Conviene saberlo antes de usarlo
- El acceso se concede de una base de datos a la vez. Un usuario nunca recibe acceso general al servidor; cada concesión nombra una sola base de datos tuya.
- Puedes quitar al último usuario de una base de datos. Nada te lo impide, y nada te avisa. La base de datos y su contenido permanecen, pero ningún inicio de sesión puede llegar a ella hasta que concedas uno de nuevo, que es la solución si un sitio informa de repente de que no puede conectar.
- Los nombres llevan el prefijo de tu cuenta. Una base de datos que creas como
shopesyouracct_shopen el servidor, y un usuarioappesyouracct_app. Escribe el nombre corto en el panel y el nombre completo en la configuración de tu aplicación. - Solo tus propias bases de datos y usuarios. Una concesión que nombre la base de datos de otra cuenta se rechaza. También se rechaza una revocación.
Configurar uno desde cero
- Databases → Create database, dos veces, por ejemplo
siteyadmin. - Create user & connect: nombra al usuario, elige
siteen el desplegable. Esa es la primera concesión. - En la fila del nuevo usuario, Add database, e introduce
admin.
Copia la contraseña cuando se muestre. El panel la almacena en una forma que no puede leer de vuelta, así que una contraseña perdida se restablece, no se recupera: eso es Password en la misma fila.
Cuando algo parece ir mal
"No such database for this account." El nombre se escribió mal, o introdujiste la forma con prefijo. Usa el nombre corto tal como aparece en la tabla Databases de arriba.
"No such database user for this account." La lista de usuarios de la página está desactualizada. Recárgala.
La aplicación conecta a una base de datos pero no a la otra. Confirma que la fila
enumera ambas bajo Databases, y que la aplicación está usando el nombre con
prefijo (youracct_admin) y el mismo host: localhost salvo que hayas configurado
Remote hosts para ese usuario.
Una concesión parece no tener efecto desde una máquina remota. Las concesiones agregadas aquí se aplican al inicio de sesión local. Si ese usuario también conecta desde una dirección externa, vuelve a guardar su lista de Remote hosts tras conceder, para que la entrada remota se ponga al día con las bases de datos que el usuario ahora tiene.