Documentación / Un usuario de base de datos para varias bases de datos

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 shop es youracct_shop en el servidor, y un usuario app es youracct_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

  1. Databases → Create database, dos veces, por ejemplo site y admin.
  2. Create user & connect: nombra al usuario, elige site en el desplegable. Esa es la primera concesión.
  3. 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.