DokumentationForbind jeres data
Forbind en database
Opret en bruger med kun læseadgang, åbn for Adeas adresser, og forbind. Fremgangsmåde for PostgreSQL, MySQL, MariaDB, Redshift, BigQuery og Snowflake.
På denne side
Adea skal bruge én ting fra jeres database: en bruger, der kun kan læse. Du opretter den, giver Adea oplysningerne, og så begynder Adea at læse. Det tager cirka fem minutter.
Hvis du ikke selv driver databasen, kan du sende den, der gør, udviklerlinket. Vedkommende forbinder den uden en konto.
Før du går i gang
- Brug en læsekopi (read replica), hvis I har en. Adea kører én forespørgsel ad gangen på hver forbindelse og holder igen, når jeres database har travlt. En læsekopi holder den belastning væk fra jeres hoveddatabase.
- Databasen skal kunne nås fra internettet. Adea forbinder kun til offentlige adresser, aldrig til et privat netværk.
- Brug SSL, hvis jeres database understøtter det.
- Hav værten, porten og databasens navn klar.
Tillad Adeas adresser
Hvis jeres database ligger bag en firewall eller en liste over tilladte adresser, åbner I for Adeas adresser dér. Når I tilføjer databasen i Adea, viser forbindelsessiden dem med en kopiknap. Adea når jeres database fra dem og fra ingen andre steder, og de er de samme for alle virksomheder. Hvis I sætter det op for en anden, viser udviklerlinket fra Adea dem også.
Opret brugeren med læseadgang
Vælg din slags database. Skift navnene og adgangskoden ud med jeres egne, og brug en lang adgangskode.
PostgreSQL
CREATE USER adea_readonly WITH PASSWORD 'vaelg-en-lang-adgangskode';
GRANT CONNECT ON DATABASE din_database TO adea_readonly;
GRANT USAGE ON SCHEMA public TO adea_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO adea_readonly;
Ligger jeres tabeller ikke i skemaet public, skal I gentage skema-linjerne for hvert skema, Adea skal læse.
MySQL og MariaDB
Samme kommandoer virker til begge.
CREATE USER 'adea_readonly'@'%' IDENTIFIED BY 'vaelg-en-lang-adgangskode';
GRANT SELECT, SHOW VIEW ON din_database.* TO 'adea_readonly'@'%';
FLUSH PRIVILEGES;
Amazon Redshift
CREATE USER adea_readonly PASSWORD 'vaelg-en-lang-adgangskode';
GRANT USAGE ON SCHEMA public TO adea_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO adea_readonly;
BigQuery
BigQuery har ikke brugere med adgangskode. I opretter en servicekonto, der kan køre forespørgsler og se data, og giver Adea dens nøgle.
gcloud iam service-accounts create adea-readonly --project=dit-projekt \
--display-name="Adea (kun læsning)"
gcloud projects add-iam-policy-binding dit-projekt --role=roles/bigquery.jobUser \
--member=serviceAccount:adea-readonly@dit-projekt.iam.gserviceaccount.com
gcloud projects add-iam-policy-binding dit-projekt --role=roles/bigquery.dataViewer \
--member=serviceAccount:adea-readonly@dit-projekt.iam.gserviceaccount.com
gcloud iam service-accounts keys create adea-key.json \
--iam-account=adea-readonly@dit-projekt.iam.gserviceaccount.com
Adea tjekker, at nøglen ikke kan skrive i noget datasæt, og afviser en nøgle, der kan. Før hver forespørgsel spørger Adea BigQuery, hvor meget data den ville læse, og afviser en forespørgsel over grænsen pr. forespørgsel eller pr. måned. Et spørgsmål kan ikke løbe op i en stor regning hos BigQuery.
Snowflake
CREATE ROLE adea_readonly;
GRANT USAGE ON WAREHOUSE dit_warehouse TO ROLE adea_readonly;
GRANT USAGE ON DATABASE din_database TO ROLE adea_readonly;
GRANT USAGE ON ALL SCHEMAS IN DATABASE din_database TO ROLE adea_readonly;
GRANT USAGE ON FUTURE SCHEMAS IN DATABASE din_database TO ROLE adea_readonly;
GRANT SELECT ON ALL TABLES IN DATABASE din_database TO ROLE adea_readonly;
GRANT SELECT ON ALL VIEWS IN DATABASE din_database TO ROLE adea_readonly;
GRANT SELECT ON FUTURE TABLES IN DATABASE din_database TO ROLE adea_readonly;
GRANT SELECT ON FUTURE VIEWS IN DATABASE din_database TO ROLE adea_readonly;
CREATE USER adea_readonly TYPE = SERVICE DEFAULT_ROLE = adea_readonly
DEFAULT_WAREHOUSE = dit_warehouse RSA_PUBLIC_KEY = 'indsaet-den-offentlige-noegle';
GRANT ROLE adea_readonly TO USER adea_readonly;
Adea logger ind med et nøglepar. Opret nøgleparret, læg den offentlige nøgle på brugeren som ovenfor, og giv Adea den private nøgle.
Forbind i Adea
- Åbn Data, og vælg at tilføje en datakilde.
- Vælg slags database, og skriv oplysningerne, eller indsæt en forbindelsesstreng.
- Adea tester forbindelsen ét trin ad gangen: den når databasen, logger ind, tjekker at brugeren kun kan læse, og læser listen over tabeller. Hvert trin bliver grønt. Fejler ét, siger Adea, hvad du skal rette.
- Adea læser navnene på jeres tabeller og kolonner og begynder at lære, hvad de betyder.
Hvad Adea læser, og hvad den gemmer
Adea gemmer ikke en kopi af jeres database. Den læser det, et spørgsmål har brug for, regner svaret ud og kasserer rækkerne. Hver forespørgsel kører i sin egen kortlivede proces, som kun holder den ene forbindelse.
Hver forespørgsel bliver tjekket, før den kører. Kun én læsning er tilladt, og Adea afviser alt, der kunne ændre data. Derudover kigger Guardian på hvert træk af data.
Hvis den ikke forbinder
| Det ser du | Det skal du gøre |
|---|---|
| Adea kan ikke nå databasen | Tjek værten og porten, og at de adresser, Adea viser, er åbnet i jeres firewall. |
| Adea siger, at brugeren kan skrive | Adea afviser en bruger, der kan ændre data. Opret brugeren som vist ovenfor, og fjern andre rettigheder. |
| Login fejler | Tjek brugernavn og adgangskode. I MySQL og MariaDB skal brugeren have lov fra alle værter ('%'). I PostgreSQL skal brugeren have lov til at forbinde udefra jeres netværk. |
| Adea forbinder, men ser ingen tabeller | Giv brugeren SELECT på det skema, hvor jeres tabeller ligger, som i eksemplerne ovenfor. |
| Spørgsmål er langsomme | Forbind en læsekopi i stedet for jeres hoveddatabase. |
Sidder du stadig fast? Skriv til hello@adea.app. Et menneske svarer.