Vai al contenuto
Menu della documentazione

Sorgenti dati

Le connessioni ai tuoi database Oracle e PostgreSQL, per ambiente, con credenziali cifrate e accesso in sola lettura.

Una sorgente dati collega Prynt a un database che usi già. I dataset ne leggono le righe con SQL, sempre in sola lettura. Gestisci le sorgenti dati nella pagina Sorgenti dati di un workspace.

Che cos'è una sorgente dati

Una sorgente dati è logica: un nome, un codice come ERP_MAIN e un tipo di database. Host, utente e password veri stanno nelle sue connessioni, una per ogni ambiente del workspace. I template indicano il codice, mai una stringa di connessione: lo stesso template legge il database di sviluppo nel Designer e quello di produzione quando il tuo sistema di produzione lo genera.

  • Il codice usa lettere maiuscole, cifre e trattini bassi, inizia con una lettera (al massimo 64 caratteri) e non si può cambiare dopo la creazione: i dataset e le versioni pubblicate lo usano.
  • Una sorgente dati è la predefinita del workspace: i dataset che non indicano una sorgente dati leggono quella. La prima sorgente dati è sempre la predefinita; Rendi predefinita sposta il ruolo su un'altra.
  • Il tipo non si può cambiare dopo la creazione. Eliminare una sorgente dati elimina le sue connessioni e le credenziali salvate.

Database supportati

Oracleoracle
Con ODP.NET (managed), service name, TCP o TCPS. SQL, funzioni, funzioni pipelined e procedure con SYS_REFCURSOR. Vedi Oracle.
PostgreSQLpostgresql
Con Npgsql, nome del database, TLS con sslmode. SQL e funzioni che restituiscono righe. Vedi PostgreSQL.

SQL Server e MySQL compaiono come in arrivo: non si possono ancora creare. Le guide dei database spiegano utenti, grant e note sul dialetto: Oracle, PostgreSQL.

Creare una sorgente dati

  1. In Sorgenti dati scegli Nuova sorgente dati: nome, codice, tipo di database, una descrizione facoltativa e, se vuoi, Sorgente dati predefinita.
  2. Nella pagina della sorgente dati scegli Configura su un ambiente e indica come Prynt raggiunge il database: Prynt Gateway o Connessione diretta.
  3. Inserisci host, porta, service name o database, utente e password, e la modalità TLS.
  4. Salva la connessione: Prynt la salva e la prova, e mostra l'esito con eventuali avvisi.
  5. Ripeti per gli altri ambienti che usi.

Una connessione per ambiente

Ogni workspace ha degli ambienti (Development, Staging e Production come predefiniti), e una sorgente dati ha al massimo una connessione per ciascuno. Quale connessione si usa:

  • Nel Designer (editor SQL, esploratore del database, prove dei dataset, anteprime, prove di generazione): l'ambiente scelto in alto nell'applicazione, Development come predefinito.
  • Tramite l'API: l'environment della richiesta di generazione, altrimenti l'ambiente predefinito della chiave API.

Non c'è alcun ripiego: se l'ambiente scelto non ha una connessione, la richiesta fallisce con DATA_SOURCE_NOT_CONFIGURED. L'elenco delle sorgenti dati mostra lo stato di ogni connessione: Connesso, Connesso con avvisi, Non riuscito, Non provato, Non configurato o Gateway offline.

Gateway o diretta

Ogni connessione raggiunge il suo database in uno di due modi, scelto per ambiente:

  • Prynt Gateway (consigliato per le reti private, la scelta iniziale delle nuove connessioni): un piccolo agente accanto al database si collega a Prynt in uscita via HTTPS. Il database resta privato e le credenziali sono cifrate per il gateway nel tuo browser. Vedi Gateway.
  • Connessione diretta (database in cloud): Prynt si collega via Internet, con TLS obbligatorio e indirizzi privati rifiutati. Vedi Connessioni dirette.

Impostazioni della connessione

Hosttestoobbligatorio
Diretta: il nome DNS pubblico. Gateway: l'host come lo vede il gateway (erp-db.local, 10.0.0.12).
Portaintero
Predefinita 1521 (Oracle) o 5432 (PostgreSQL).
Service nametestoobbligatorio
Solo Oracle: il servizio del database, per esempio ORCLPDB1. I SID non sono supportati.
Databasetestoobbligatorio
Solo PostgreSQL: il nome del database.
Utentetestoobbligatorio
Un utente in sola lettura: Prynt avvisa se può scrivere.
Passwordsegreto
Solo in scrittura: dopo il salvataggio, Password salvata con Sostituisci. Con un gateway, cifrata per il gateway nel browser.
Schema correntetesto
Dove si risolvono i nomi senza schema (Oracle: CURRENT_SCHEMA; PostgreSQL: search_path).
Schemi nell'esploratoreelenco
Gli schemi che l'esploratore del database elenca (fino a 50). Vuoto = tutti quelli che l'utente vede, tranne gli schemi di sistema.
TLSmodalità
Disattivato, Obbligatorio, Verifica la CA, Verifica certificato e host (consigliato). Le connessioni dirette devono usare TLS.
Avanzatenumeri
Timeout di connessione (1–120 s, predefinito 15), timeout delle query dell'esploratore e dell'apertura della sessione (1–600 s, predefinito 30), connessioni massime nel pool (1–100, predefinito 20).

Le credenziali non si vedono più

Le password sono cifrate a riposo e non tornano mai a un browser o a un'API. Ogni modifica crea una nuova revisione della connessione, e le connessioni aperte vengono sostituite.

Provare la connessione

Salva la connessione salva e prova insieme; Prova la connessione riprova (permesso sql.execute). L'esito mostra latenza, versione del server e utente effettivo, per esempio Connesso · 31 ms · Oracle 19c · utente PRYNT_READER, oppure l'errore. Gli avvisi dicono cosa correggere:

TLS_DISABLEDavviso
Il traffico non è cifrato tra il punto di connessione e il database. Accettabile solo in una rete privata accanto a un gateway.
TLS_NOT_VERIFIEDavviso
Cifrato, ma il certificato del server (o il nome dell'host) non viene verificato.
WRITE_PRIVILEGESavviso
L'utente può inserire, modificare o possedere tabelle. Prynt legge soltanto, ma usa un utente dedicato in sola lettura: la prova offre lo script SQL.
ADMIN_PRIVILEGESavviso
Privilegi ANY, ruoli DBA o superuser: molto più di quanto serve a Prynt.
NOT_READ_ONLY_BY_DEFAULTavviso
PostgreSQL: default_transaction_read_only dell'utente è disattivato (Prynt usa comunque transazioni in sola lettura).
CURRENT_SCHEMA_INVALIDavviso
Lo schema corrente non esiste: i nomi senza schema non si risolvono.
PRIVILEGES_UNKNOWNavviso
L'utente non può leggere il catalogo dei privilegi, quindi la sola lettura non è stata confermata.

Esploratore del database

Nell'editor dei dataset del Designer, l'esploratore del database legge il catalogo della sorgente dati del dataset, attraverso la connessione dell'ambiente corrente:

  • tabelle, viste, funzioni e procedure (e package Oracle) degli schemi nell'esploratore, con ricerca e filtro per tipo;
  • le colonne di un oggetto con tipo, nullabilità e chiave primaria, e gli argomenti di una routine;
  • la ricerca delle tabelle che hanno una colonna con un certo nome;
  • l'inserimento nell'editor SQL di una SELECT su un oggetto, o del suo nome.

Il catalogo resta in cache per 5 minuti; Aggiorna lo rilegge dal database.

Le sorgenti dati nei dataset

Ogni dataset sceglie la sua sorgente dati nella barra del dataset (vuoto = la predefinita). Un template può leggere più sorgenti dati; ognuna viene letta nella propria istantanea coerente, quindi i dati sono coerenti solo tra dataset della stessa sorgente dati (il Designer lo segnala). Il dialetto SQL segue la sorgente dati: una query Oracle non gira su PostgreSQL.

Errori che puoi incontrare

DATA_SOURCE_NOT_CONFIGURED422
Nessuna connessione per l'ambiente richiesto, oppure nessuna sorgente dati predefinita.
DATA_SOURCE_UNKNOWNerrore
Il dataset indica un codice di sorgente dati che non esiste nel workspace.
GATEWAY_OFFLINE503
Il gateway della connessione non è connesso.
DATA_SOURCE_UNAVAILABLE503
Il database ora non è raggiungibile (rete, listener, accesso rifiutato).

Permessi

  • datasources.read (designer e ruoli superiori): vedere le sorgenti dati e sceglierle nei dataset.
  • datasources.manage (developer, admin, owner): creare, modificare ed eliminare sorgenti dati e connessioni, aggiungere e revocare gateway.
  • sql.execute (developer, admin, owner): provare le connessioni, esplorare il database, eseguire query.