Implementazione delle applicazioni livello dati

Un'applicazione livello dati (DAC) consente di definire gli schemi e gli oggetti di Motore di database di SQL Server necessari per il supporto di un'applicazione. È possibile implementare una DAC utilizzando uno dei due processi seguenti:

  • Creando e compilando un'applicazione livello dati tramite un progetto di applicazione livello dati SQL Server in Microsoft Visual Studio 2010.

  • Estraendo una DAC da un database esistente tramite la procedura guidata Estrai applicazione livello dati in SQL Server Management Studio.

Sia il processo di estrazione che quello di compilazione di build generano una definizione DAC per la specificazione di oggetti e metadati. La definizione DAC viene compilata in un pacchetto DAC, ovvero un file manifesto contenente tutti gli oggetti e le definizioni di criteri inclusi nell'applicazione livello dati. È possibile utilizzare il pacchetto DAC per eseguire le operazioni riportate di seguito.

  • Distribuire la versione corrente della DAC a istanze di sviluppo, test e produzione di Motore di database e SQL Azure. Utilizzare la procedura guidata Distribuisci applicazione livello dati per distribuire una nuova istanza DAC. Utilizzare la procedura guidata Aggiorna applicazione livello dati per aggiornare un'istanza DAC esistente distribuita utilizzando una versione precedente dell'applicazione livello dati.

  • Avviare lo sviluppo della versione successiva della DAC in Visual Studio importando la DAC in un nuovo progetto di applicazione livello dati SQL Server in Visual Studio.

applicazioni livello dati nel processo di sviluppo

Le applicazioni livello dati vengono sviluppate utilizzando progetti di applicazione livello dati SQL Server in Visual Studio. Un progetto DAC consente una stretta integrazione tra lo sviluppo degli oggetti del livello dati e l'ambiente di sviluppo dell'applicazione codificata per l'utilizzo degli stessi. Uno sviluppatore di database crea l'applicazione livello dati utilizzando un progetto DAC in Visual Studio. Il progetto DAC può essere integrato nella soluzione complessiva di sviluppo per l'applicazione in Visual Studio Team System. Man mano che gli sviluppatori dell'applicazione ne scrivono il codice, lo sviluppatore del database codifica le definizioni degli oggetti del livello dati nella DAC.

In caso di nuova applicazione, lo sviluppatore del database crea il progetto DAC e comincia ad aggiungere oggetti al progetto non appena vengono sviluppati. In caso di avvio del progetto per una nuova versione di un'applicazione esistente, lo sviluppatore del database può estrarre una DAC dal database utilizzato correntemente dall'applicazione e importarla nel progetto DAC.

Lo sviluppatore può aggiungere al progetto DAC gli elementi riportati di seguito.

  • Proprietà DAC che definiscono le caratteristiche dell'applicazione livello dati. Ogni DAC dispone ad esempio di una proprietà per il nome dell'applicazione e di una proprietà per la versione i cui valori fanno generalmente riferimento al nome e al numero di versione dell'applicazione associata.

  • Definizioni di tutti gli oggetti di database utilizzati dall'applicazione, ad esempio schemi, tabelle, viste e stored procedure. Le applicazioni livello dati non supportano tutti gli oggetti disponibili in SQL Server. Per ulteriori informazioni, vedere Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server.

  • Definizioni degli oggetti a livello di istanza, ad esempio gli account di accesso associati agli oggetti del database e utilizzati dall'applicazione.

  • Criteri di selezione dei server che definiscono le condizioni preliminari che un'istanza di Motore di database deve soddisfare per ospitare la DAC. I criteri vengono definiti utilizzando il facet di selezione dei server e possono valutare condizioni quali l'edizione e le regole di confronto predefinite dell'istanza.

  • File e script che possono essere incorporati nelle DAC create in Visual Studio, quali documenti dell'applicazione, piani di generazione dati che specificano come creare dati di prova significativi oppure script precedenti o successivi alla distribuzione.

Per attività di testing, lo sviluppatore del database può distribuire il progetto DAC a un'istanza di prova del Motore di database. In alternativa, lo sviluppatore può compilare il progetto DAC in modo che venga creata una definizione DAC in un pacchetto DAC. Nella definizione DAC sono contenuti i metadati di tutti gli elementi definiti nel progetto DAC. Il pacchetto DAC è un file XML compresso contenente la definizione DAC e viene utilizzato per la distribuzione o l'aggiornamento DAC. Sviluppatori e tester possono utilizzare la procedura guidata Distribuisci applicazione livello dati per distribuire la DAC di prova.

Al completamento dello sviluppo dell'applicazione, analogamente al progetto dell'applicazione compilato per creare i file eseguibili dell'applicazione, il progetto di applicazione livello dati SQL Server viene compilato per creare la versione di produzione del pacchetto DAC. Il pacchetto DAC viene passato agli amministratori del database di produzione per la distribuzione in istanze Motore di database eseguite in produzione o in SQL Azure.

Quando una versione DAC è stata distribuita in produzione, è possibile avviare lo sviluppo della versione DAC successiva. Lo sviluppatore del database crea una nuova versione del progetto DAC utilizzando le definizioni esistenti di tutti gli oggetti del livello dati contenuti nella versione. Quando il progetto viene compilato in un nuovo pacchetto DAC, tale pacchetto può essere utilizzato sia per distribuire una nuova istanza DAC che per aggiornare un'istanza esistente alla nuova versione. La procedura guidata Aggiorna applicazione livello dati confronta lo schema dell'istanza DAC esistente e il pacchetto DAC e dinamicamente esegue le azioni necessarie per trasformare l'istanza DAC esistente nella nuova versione DAC.

Per ulteriori informazioni sui progetti di applicazione livello dati SQL Server nella documentazione di Visual Studio, vedere Creazione e gestione di applicazioni livello dati.

Estrazione di una DAC dal database

La procedura guidata Estrai applicazione livello dati consente di compilare una definizione DAC basata su un database esistente. La definizione DAC contiene i metadati che definiscono tutti gli oggetti nel database, qualsiasi account di accesso che esegue il mapping alle entità di sicurezza nel database, le regole di confronto del database e il livello di compatibilità. La definizione DAC non contiene alcun dato utente del database di origine. Viene compilata in un file di pacchetto DAC.

La procedura guidata consente di estrarre solo gli oggetti supportati nelle applicazioni livello dati. Dopo avere specificato le proprietà quali il nome e la versione DAC, nella procedura guidata vengono caricati tutti gli oggetti dal database e verificato che siano supportati in un'applicazione livello dati. Nella procedura guidata viene quindi visualizzata una pagina di riepilogo in cui gli oggetti vengono raggruppati in tre categorie:

  • Oggetti con un'icona rossa di voce non valida, che segnala che tali oggetti non sono supportati in DAC.

  • Oggetti con un'icona gialla di avviso, che segnala che tali oggetti sono supportati ma dipendono da un oggetto che non è supportato in DAC.

  • Oggetti con un'icona verde, che segnala che tali oggetti sono supportati e non dipendono da altri oggetti non supportati in DAC.

Gli eventuali oggetti non supportati in DAC verranno elencati in un report di riepilogo e il pacchetto DAC non verrà creato. Se accanto a tutti gli oggetti viene visualizzata un'icona verde, è possibile procedere con la creazione del pacchetto DAC.

È possibile utilizzare il pacchetto DAC estratto per eseguire le operazioni riportate di seguito.

  • Importare il pacchetto DAC in un progetto DAC in Visual Studio per consentire allo sviluppatore del database di avviare lo sviluppo della versione DAC successiva.

  • Distribuire una nuova istanza DAC.

  • Aggiornare una versione DAC distribuita in precedenza.

Per ulteriori informazioni sugli oggetti supportati, vedere Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server.

Per ulteriori informazioni su come avviare la procedura guidata, vedere Procedura: Estrazione di un'applicazione livello dati da un database.

Password di accesso

Per migliorare la sicurezza, gli account di accesso dell'autenticazione di SQL Server vengono archiviati in un pacchetto DAC senza password. Quando il pacchetto viene distribuito o aggiornato, l'account di accesso viene creato come account disabilitato con una password generata. Per abilitare gli account di accesso, è necessario accedere utilizzando un account che dispone dell'autorizzazione ALTER ANY LOGIN e utilizzare ALTER LOGIN per abilitare l'account di accesso e assegnare una nuova password che può essere comunicata all'utente. Questa operazione non è necessaria per gli account di accesso dell'autenticazione di Windows, in quanto le relative password non sono gestite da SQL Server.