KEPLIN Docs

De verbinding testen en beveiliging

Wat de knop Verbinding testen doet, hoe u de meest voorkomende fouten leest, en hoe het platform inloggegevens bewaart die nooit meer op het scherm terugkomen.

Een datasource bewaart de sleutel van een echte database — vaak van productie. Deze pagina behandelt beide kanten van die verantwoordelijkheid: hoe u bevestigt dat de verbinding werkt voordat u opslaat, en wat het platform daarna met de inloggegevens doet (en weigert te doen).

De verbinding testen

De knop Verbinding testen staat in het aanmaakformulier en in het modale venster Verbinding bewerken, naast de opslaanacties:

  1. Vul de verbindingsvelden in.
  2. Klik op Verbinding testen. De knop verandert in Bezig met testen….
  3. Het platform opent een echte verbinding met de database, voert een onschadelijke controlequery uit, en sluit de verbinding. Er wordt niets geschreven en niets gewijzigd.
  4. Bij succes verschijnt de bevestiging "Verbinding OK."; bij mislukking een melding met de boodschap die de database-engine teruggeeft — letterlijk, omdat zij het is die zegt wat er te herstellen valt.

Verbinding testen antwoordt meteen met
Verbinding testen antwoordt meteen met "Verbinding OK."

Twee bijzondere gevallen:

  • Bij het bewerken met een leeg wachtwoord gebruikt de test het bewaarde wachtwoord — dat wil zeggen: hij test de verbinding zoals zij na het opslaan zal zijn.
  • Bij een SQLite die nog aangemaakt moet worden is er geen knop — het bestand bestaat nog niet, en een test zou daar alleen kunnen liegen. Hij verschijnt na het opslaan.

Dica

Test altijd voordat u opslaat. Een verkeerde verbinding opslaan breekt op dat moment niets — maar de eerste API of het eerste script dat haar gebruikt gaat falen, en dan verschijnt de fout ver van de oorzaak.

De test is mislukt — en nu?

De boodschap komt van de engine en verschilt dus; de patronen niet:

Symptoom Wat u controleert
Het duurt en eindigt in een time-out Zijn Host en Poort juist? Aanvaardt de server verbindingen van de machine waarop het platform draait (firewall, netwerk)?
Authenticatiefout / login failed Gebruiker en Wachtwoord. Bij sommige engines ook of dat account vanaf een andere machine verbinding mag maken.
Onbekende database Het veld Database bevat de exacte naam van de database binnen de server.
SSL/TLS-fouten bij een SQL Server 2008/2012 Schakel Verouderde TLS (oude SQL Server) in — daar is die precies voor.
Certificaatfouten bij andere engines SSL gebruiken / Encrypt naargelang de server vereist; bij interne servers met een eigen certificaat, Trust server certificate.
Oracle vindt de service niet Volgt de Connect string de vorm host:port/service_name? Is de service_name die van de service, en niet de SID?

Inloggegevens die nooit meer op het scherm terugkomen

Het wachtwoord van een datasource is eenmalig schrijfbaar: het gaat het formulier in, en vanaf dat moment toont het platform het niet meer — aan niemand, nooit, ook niet aan wie het geschreven heeft.

  • Wanneer u Verbinding bewerken opent, komen alle velden ingevuld behalve het wachtwoord. Het veld heet Wachtwoord (leeg = behouden): leeg gelaten blijft het huidige gelden; ingevuld vervangt het dat.
  • Er bestaat geen scherm, export of recht dat het wachtwoord leesbaar teruggeeft. Raakt u het kwijt, stel het dan opnieuw in op de databaseserver en typ hier het nieuwe.
  • In rust blijven de inloggegevens versleuteld — zoals de formulieren zelf zeggen: "Alles wordt versleuteld opgeslagen."

In het modale venster Verbinding bewerken komt het wachtwoord altijd leeg — leeg behoudt het huidige
In het modale venster Verbinding bewerken komt het wachtwoord altijd leeg — leeg behoudt het huidige

Nota

Dit geldt voor wat het platform in de hand heeft. Het wachtwoord blijft bestaan in uw hoofd, in uw wachtwoordbeheerder en op de databaseserver — het platform garandeert alleen dat het langs deze kant niet weer op het scherm verschijnt.

En wanneer de app op reis gaat?

Bij het exporteren van een app (Instellingen → App exporteren) kiest u de bestemming van de geheimen:

  • Zonder geheimen (aanbevolen) — "De verbindingen van de datasources en de secrets reizen leeg mee". Wie in een andere instantie importeert, vult de inloggegevens opnieuw in — de wachtwoorden reizen niet mee.
  • Met geheimen, beschermd met een passphrase — de waarden reizen versleuteld mee met een passphrase die u vastlegt en die bij het importeren gevraagd wordt. "Zonder de passphrase zijn de geheimen van het pakket onherstelbaar."

Wie wat mag doen

Actie Vereist profiel in de app
De lijst met datasources zien en de app gebruiken Developer
Datasources aanmaken, bewerken, hernoemen, verwijderen Beheerder
SQL-console, objecten aanmaken/wijzigen (DDL) Beheerder

Daarom kan het zijn dat een developer de knop Datasource toevoegen en het menu Verbinding bewerken niet ziet — dat is geen fout, dat is het profiel.

Alles wordt vastgelegd

  • Geschiedenis van de app — elke aanmaak, wijziging, hernoeming en verwijdering van een datasource komt in de wijzigingsgeschiedenis ("Datasource "crm" aangemaakt", "Datasource "crm" gewijzigd", …), met auteur en datum.
  • Audit van het platform — dezelfde bewerkingen belanden in het auditspoor van Radar, met als doelwit Datasource.
  • SQL-console — wanneer u SQL uitvoert die schrijft of wijzigt (een UPDATE, een DROP…), wordt de gebeurtenis geauditeerd met het type bewerking en een vingerafdruk van de query — zonder de tekst van de SQL, zodat gevoelige gegevens die in de console geschreven zijn niet in het logboek belanden.
  • Radar → Status — de sectie Verbindingen met databases toont de verbindingen die in alle apps ingesteld zijn. En met een bewuste voorzichtigheid: "Deze pagina maakt uit zichzelf met geen van hen verbinding: het zijn productiedatabases, en bij elk bezoek verbindingen openen is verkeer waar niemand om heeft gevraagd."

De sectie Verbindingen met databases in de status van Radar
De sectie Verbindingen met databases in de status van Radar

Goede gewoonten

  • Gewijd account, minimale rechten. Maak in de database een gebruiker speciaal voor de app, met toegang tot alleen de nodige tabellen. Alles wat de app uitvoert — API's, scripts, console — gaat via dat account.
  • Richt de tests op testgegevens. Bij het testen van een API die schrijft, waarschuwt het platform zelf: "De test voert de pipeline echt uit tegen de datasources — een mutation doet echte schrijfbewerkingen. Controleer of u naar testgegevens wijst."
  • Versleutel de verbinding telkens als de server dat toelaat (SSL gebruiken / Encrypt) — zeker wanneer de database in een ander netwerk staat.
  • Namen die de omgeving noemen. crm en crm-test voorkomen de ergst denkbare vergissing: op de juiste plek van de verkeerde omgeving schrijven.

Veelgestelde vragen

  • Toont Keplin mij het wachtwoord dat ik opgeslagen heb? Nee. Het is eenmalig schrijfbaar — het alternatief is het vervangen.
  • Komt Verbinding testen aan de gegevens? Nee. Het opent de verbinding, draait een onschadelijke controlequery en sluit weer.
  • Waarom slaagt de test maar faalt de query van de API? De test valideert de verbinding, niet de rechten op elke tabel. Mag het account een tabel niet lezen of beschrijven, dan verschijnt de fout bij die query.
  • Ik heb het wachtwoord op de databaseserver gewijzigd — en nu? De API's en scripts beginnen te falen met een authenticatiefout. Open Verbinding bewerken, typ het nieuwe wachtwoord en klik op Opslaan.