Collegare tabelle di DB residenti in server diversi

di il
2 risposte

Collegare tabelle di DB residenti in server diversi

Salve,

solitamente faccio applicazioni utilizzando MsAccess come interfaccia e SQL server come DB.
Quindi collego le tabelle del DB SQL all'applicazione MsAccess.

Ora mi è stato richiesto di modificare un'applicazione realizzata nella modalità precedentemente esposta, ma con una complicazione, nel senso che alcuni dati li devo acquisire da un DB residente su un altro server ("remoto").
Il problema è che le tabelle del DB "remoto" non hanno nessuna utilità nell'applicazione MsAccess, nel senso che no mi servono collegate, ma sono indispensabili per alcune viste residenti nel DB dell'applicazione ("principale") in SQL server.

E' possibile collegare il server o le tabelle/viste del DB "remoto" al DB SQL server "principale"?
Ho visto che in "Server Object" c'è una funzione "Linked server" che però non ho mai utilizzato.
Potrebbe essere la soluzione che cerco?

Faccio presente che entrambi i due DB e l'applicazione sono su server in cloud.

Grazie
Ciao

2 Risposte

  • Re: Collegare tabelle di DB residenti in server diversi

    Salve,
    si, l'utilizzo di linked server consente ad un'istanza di collegarsi ad altre istanze, e solitamente non si riscontrano problematiche in tal senso.
    in una istanza "master" viene registrato un linked server e, da tale operazione, risulta poi possibile accedere con la notazione a 4 nomi completi ( serverName.databaseName.schemaName.objectName) agli oggetti interessanti...
    le problematiche piu' diffuse avvengono nel momento di utilizzo di transazioni distribuite, vedi ad esempio https://docs.microsoft.com/en-US/sql/t-sql/language-elements/begin-distributed-transaction-transact-sql?view=sql-server-ver15

    interessanti le argomentazioni di sicurezza espresse in:
    - https://sqljana.wordpress.com/2017/06/16/sql-server-curse-of-linked-server-security-and-the-fix-pass-through-authentication/
    - https://www.brentozar.com/blitz/linked-servers
    - https://sqlsolutionsgroup.com/linked-server-security
    Ora mi è stato richiesto di modificare un'applicazione realizzata nella modalità precedentemente esposta, ma con una complicazione, nel senso che alcuni dati li devo acquisire da un DB residente su un altro server ("remoto").
    Il problema è che le tabelle del DB "remoto" non hanno nessuna utilità nell'applicazione MsAccess, nel senso che no mi servono collegate, ma sono indispensabili per alcune viste residenti nel DB dell'applicazione ("principale") in SQL server.
    non mi e' ben chiaro questa espressione...
    l'istanza corrente, SE gia' in esecuzione con il db in catalogo, tecnicamente GIA' ORA deve essere in grado di collegarsi all'istanza remota, altrimenti le viste che referenziano gli oggetti remoti non sarebbero funzionanti... dici che "... Il problema è che le tabelle del DB "remoto" non hanno nessuna utilità nell'applicazione MsAccess, nel senso che no mi servono collegate...", quindi tu non accedi a tali viste e per te, se ho ben compreso, il tutto resta indifferente... il problema non deve essere nelle tue mani bensi' nelle mani del responsabile IT di chi ha imposto tale vincolo...
    se le viste invece le hai definite tu per la tua applicazione, allora necessariamente poni un vincolo molto sostanziale...
    ma forse non ho ben compreso il quadro generale...
    saluti omnia
    --
    Andrea
  • Re: Collegare tabelle di DB residenti in server diversi

    Grazie @asql per la risposta e per i link.

    Non so come sia organizzata fisicamente l'infrastruttura. So solo che sono due istanze.
    La frase finale del mio post precedente è errata. E' sfuggito "un server in cloud" che fa pensare che sia una sola istanza.
    Il linked server non lo posso creare io, proprio per questo avevo proprio bisogno di una conferma per fare una richiesta precisa al responsabile IT.
    Io posso mettere mano agli oggetti del mio db "principale" contenuto nell'istanza "principale".
    Una volta collegato il server "remoto" dovrò creare delle viste nel mio db "principale" che fanno riferimento a tabelle del server linkato con tabelle del mio db.

    Grazie
    Ciao
Devi accedere o registrarti per scrivere nel forum
2 risposte