# Se connecter à une base

> Les identifiants d’une base, qui peut la joindre, et comment la brancher sur une application, un VPS ou un serveur de jeu.

Source : https://docs.arkya.gg/bases-de-donnees/connexion

## Les identifiants

L’onglet **Connexion** de la base donne tout :

| Champ | Valeur |
| --- | --- |
| Hôte | l’adresse interne au projet |
| Port | `5432`, `3306` ou `6379` selon le moteur |
| Utilisateur | `arkya` ; Redis n’en a pas |
| Base | le nom du service, avec des tirets bas : `boutique_db` pour `boutique-db` |
| Mot de passe | affiché une seule fois, à la création |
| URL | une URL modèle, où tu remplaces `MOT_DE_PASSE` |

Le bouton **Régénérer** donne un nouveau mot de passe. L’ancien cesse aussitôt de marcher : mets à jour les applications qui s’en servent. Une base Redis redémarre pour garder le nouveau.

## Qui peut la joindre

| Depuis | Possible ? |
| --- | --- |
| une application du même projet | oui, par l’adresse interne |
| un serveur de jeu | oui pour sa [base offerte](https://docs.arkya.gg/serveurs-de-jeu/base-offerte), par une adresse réservée aux machines de jeu |
| un VPS du même projet | oui si tu actives l’accès des VPS, par l’adresse du cluster : voir [Depuis un VPS](#depuis-un-vps) |
| une application d’un autre projet | non |
| ton ordinateur, Internet | non |

Pour lire et modifier tes données sans client local, utilise l’onglet **Données** : voir [Explorer les données](https://docs.arkya.gg/bases-de-donnees/donnees). Pour charger un export, voir [Importer un fichier SQL](https://docs.arkya.gg/bases-de-donnees/import-sql).

## Depuis une application

N’écris pas l’adresse interne en dur : utilise une référence, que l’application résout à chaque démarrage. Dans l’onglet **Variables** de l’application :

```dotenv
DATABASE_URL=postgres://arkya:MOT_DE_PASSE@${boutique-db.URL}/boutique_db
```

`${boutique-db.URL}` vaut `hôte:port`, sans protocole ni identifiants. Les autres formes sont dans [Variables et références](https://docs.arkya.gg/applications/variables).

## Depuis un VPS

Un VPS rangé dans le même projet peut joindre la base sans qu’elle soit ouverte sur Internet.

1. Range le VPS dans le projet de la base.
2. Dans l’onglet **Connexion** de la base, active **Accès depuis les VPS du projet**.
3. Utilise l’adresse du bloc **Depuis tes VPS** : hôte, port et URL modèle. L’hôte interne ne marche pas depuis un VPS.

Seules les IP des VPS actifs du projet passent, aucune autre. Un VPS ajouté au projet plus tard est autorisé de lui-même, en quelques minutes.

```bash
psql "postgres://arkya:MOT_DE_PASSE@HÔTE:PORT/boutique_db"
```

> **Bon à savoir**
>
> Activer ou couper l’accès des VPS demande le droit « Réglages » sur le projet.

## Un utilisateur par application

Une base PostgreSQL ou MariaDB peut porter plusieurs bases et plusieurs utilisateurs. L’onglet **Accès** les crée, et règle les droits de chaque utilisateur sur chaque base :

| Niveau | Ce qu’il permet |
| --- | --- |
| Lecture | consulter |
| Lecture et écriture | ajouter, modifier et supprimer des lignes |
| Tout | créer et modifier ses propres tables en plus |

L’utilisateur `arkya` garde tous les droits. Le mot de passe d’un nouvel utilisateur s’affiche une seule fois.

> **Bon à savoir**
>
> Les sauvegardes ne couvrent que la base principale. Une base créée dans l’onglet Accès n’y est pas : exporte-la toi-même.
