Condividi tramite


Distribuire un'applicazione livello dati

È possibile distribuire un'applicazione livello dati (DAC) da un pacchetto di applicazione livello dati all'istanza esistente del Motore di database o di Database SQL utilizzando una procedura guidata o uno script di PowerShell. Tramite il processo di distribuzione viene registrata un'istanza di applicazione livello dati archiviando la definizione dell'applicazione livello dati nel database di sistema msdb (master in Database SQL) e viene creato un database che, successivamente, viene popolato con tutti gli oggetti di database definiti nell'applicazione livello dati.

  • Prima di iniziare: Utilità SQL Server, Opzioni e impostazioni del database, Limitazioni e restrizioni, Prerequisiti, Sicurezza, Autorizzazioni

  • Per distribuire un'applicazione livello dati, utilizzando: la procedura guidata Distribuisci applicazione livello dati, PowerShell

Prima di iniziare

È possibile distribuire più volte lo stesso pacchetto di applicazione livello dati in una sola istanza del Motore di database, le distribuzioni devono, tuttavia, essere eseguite una alla volta. Il nome dell'istanza di applicazione livello dati specificato per ogni distribuzione deve essere univoco all'interno dell'istanza del Motore di database.

Per ulteriori informazioni sulla creazione di un pacchetto di applicazione livello dati, vedere Informazioni sulle applicazioni del livello dati.

Utilità SQL Server

Se si distribuisce un'applicazione livello dati in un'istanza gestita del Motore di database, il pacchetto di applicazione livello dati distribuito viene incorporato in Utilità SQL Server al successivo invio del set di raccolta dell'utilità dall'istanza al punto di controllo dell'utilità. L'applicazione livello dati sarà quindi presente nel nodo Applicazioni del livello dati distribuite nell'area Esplora utilità di Management Studio e verrà segnalata nella pagina dei dettagli Applicazioni livello dati distribuite.

Opzioni e impostazioni del database

Per impostazione predefinita, il database creato durante la distribuzione disporrà di tutte le impostazioni predefinite incluse nell'istruzione CREATE DATABASE, fatta eccezione per le seguenti:

  • Le regole di confronto e il livello di compatibilità del database sono impostati sui valori definiti nel pacchetto di applicazione livello dati. I pacchetti di applicazione livello dati compilati da un progetto di database in SQL Server Developer Tools utilizzano i valori impostati nel progetto di database. I pacchetti estratti da un database esistente utilizzano i valori del database originale.

  • È possibile modificare alcune delle impostazioni del database, ad esempio il nome del database e i percorsi di file, nella pagina Aggiorna configurazione. Non è possibile impostare i percorsi dei file durante la distribuzione in Database SQL.

Alcune opzioni del database, ad esempio TRUSTWORTHY, DB_CHAINING e HONOR_BROKER_PRIORITY, non possono essere modificate durante il processo di distribuzione. Le proprietà fisiche, ad esempio il numero di filegroup o i numeri e le dimensioni dei file, non possono essere modificate durante il processo di distribuzione. Al termine della distribuzione, è possibile utilizzare l'istruzione ALTER DATABASE, SQL Server Management Studio o SQL Server PowerShell per modificare il database in base alle proprie esigenze. Per ulteriori informazioni, vedere Modifica di database.

[Torna all'inizio]

Limitazioni e restrizioni

È possibile distribuire un'applicazione livello dati a Database SQL, o un'istanza del Motore di database che esegue SQL Server 2005 Service Pack 4 (SP4) o versioni successive. Se è stata creata un'applicazione livello dati da SQL Server 2012 o SQL Server 2008 R2, è possibile che tale applicazione livello dati contenga oggetti non supportati da SQL Server 2005. Non è possibile distribuire tali applicazioni livello dati a istanze di SQL Server 2005.

[Torna all'inizio]

Prerequisiti

È consigliabile evitare di distribuire un pacchetto di applicazione livello dati proveniente da origini sconosciute o non attendibili. Tali pacchetti possono contenere codice dannoso che potrebbe eseguire codice indesiderato Transact-SQL o causare errori modificando lo schema. Prima di utilizzare un pacchetto proveniente da un'origine sconosciuta o non attendibile, decomprimere l'applicazione livello dati e controllare il codice, ad esempio le stored procedure o altro codice definito dall'utente. Per ulteriori informazioni su come eseguire questi controlli, vedere Convalida di un pacchetto di applicazioni livello dati.

[Torna all'inizio]

Sicurezza

Per migliorare la sicurezza, gli account di accesso dell'autenticazione di SQL Server vengono archiviati in un pacchetto di applicazione livello dati 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.

[Torna all'inizio]

Autorizzazioni

Un'applicazione livello dati può essere distribuita unicamente dai membri del ruolo predefinito del server sysadmin o serveradmin oppure tramite gli account di accesso disponibili nel ruolo predefinito del server dbcreator con autorizzazioni ALTER ANY LOGIN. È inoltre possibile distribuire un'applicazione livello dati utilizzando l'account dell'amministratore di sistema di SQL Server predefinito denominato sa. La distribuzione di un'applicazione livello dati con accessi in Database SQL richiede l'appartenenza ai ruoli loginmanager o serveradmin. Per la distribuzione di un'applicazione livello dati senza account di accesso in Database SQL è richiesta l'appartenenza ai ruoli dbmanager o serveradmin.

[Torna all'inizio]

Utilizzo della procedura guidata Distribuisci applicazione livello dati

Per distribuire un'applicazione livello dati tramite una procedura guidata

  1. In Esplora oggetti espandere il nodo per le istanze a cui si desidera distribuire l'applicazione livello dati.

  2. Fare clic con il pulsante destro del mouse sul nodo Database e selezionare Distribuisci applicazione livello dati.

  3. Completare le finestre di dialogo della procedura guidata.

    • Pagina Introduzione

    • Pagina Selezione pacchetto di applicazione livello dati

    • Pagina Verifica criteri

    • Pagina Aggiorna configurazione

    • Pagina Riepilogo

    • Pagina Distribuisci

[Torna all'inizio]

Pagina Introduzione

In questa pagina vengono descritti i passaggi per la distribuzione di un'applicazione livello dati.

Non visualizzare più questa pagina. - Fare clic sulla casella di controllo per evitare che la pagina venga visualizzata nuovamente in futuro.

Avanti > - consente di passare alla pagina Selezione pacchetto di applicazione livello dati.

Annulla - Consente di terminare la procedura guidata senza distribuire un pacchetto di applicazione livello dati.

[Distribuzione guidata]

Pagina Selezione pacchetto di applicazione livello dati

Utilizzare questa pagina per specificare il pacchetto di applicazione livello dati contenente l'applicazione livello dati da distribuire. La pagina passa attraverso tre stati.

[Distribuzione guidata]

Selezionare pacchetto di applicazione livello dati

Utilizzare lo stato iniziale della pagina per scegliere il pacchetto di applicazione livello dati da distribuire. È necessario specificare un file di pacchetto di applicazione livello dati valido con estensione dacpac.

Pacchetto di applicazione livello dati - Consente di specificare il percorso e il nome del file del pacchetto di applicazione livello dati contenente l'applicazione livello dati da distribuire. Per passare al percorso del pacchetto di applicazione livello dati, è possibile fare clic sul pulsante Sfoglia a destra della casella.

Nome applicazione - Casella di sola lettura in cui viene visualizzato il nome del pacchetto di applicazione livello dati assegnato durante la creazione o l'estrazione del pacchetto di applicazione livello dati da un database.

Versione - Casella di sola lettura in cui viene visualizzata la versione assegnata durante la creazione o l'estrazione dell'applicazione livello dati da un database.

Descrizione - Casella di sola lettura in cui viene visualizzata la descrizione immessa durante la creazione o l'estrazione dell'applicazione livello dati da un database.

< Indietro - Consente di tornare alla pagina Introduzione.

Avanti > - Consente di visualizzare un indicatore di stato per la verifica della validità del file selezionato come pacchetto di applicazione livello dati.

Annulla - Consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

[Distribuzione guidata]

Convalida del pacchetto di applicazione livello dati

Viene visualizzato un indicatore di stato per la verifica della validità del file selezionato come pacchetto di applicazione livello dati. Se il pacchetto di applicazione livello dati viene convalidato, la procedura guidata continua con la versione finale della pagina Seleziona pacchetto in cui è possibile controllare il risultato della convalida. Se il file non è un pacchetto di applicazione livello dati valido, rimane visualizzata la pagina Selezione pacchetto di applicazione livello dati. Selezionare un altro pacchetto di applicazione livello dati valido o annullare la procedura guidata e generare un nuovo pacchetto di applicazione livello dati.

Convalida del contenuto dell'applicazione livello dati - Indicatore di stato che indica lo stato corrente del processo di convalida.

< Indietro - Consente di tornare allo stato iniziale della pagina Seleziona pacchetto.

Avanti > - Consente di passare alla versione finale della pagina Seleziona pacchetto.

Annulla - Consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

[Distribuzione guidata]

Pagina Verifica criteri

Utilizzare questa pagina per controllare il risultato della valutazione degli eventuali criteri di selezione dei server dell'applicazione livello dati. I criteri di selezione dei server del pacchetto di applicazione livello dati sono facoltativi e sono assegnati al pacchetto di applicazione livello dati quando viene creato in Visual Studio. I facet dei criteri di selezione dei server vengono utilizzati per specificare le condizioni che un'istanza del Motore di database deve soddisfare per ospitare il pacchetto di applicazione livello dati.

Risultati della valutazione delle condizioni dei criteri - Report di sola lettura che indica se le condizioni dei criteri di distribuzione del pacchetto di applicazione livello dati sono soddisfatte. I risultati della valutazione di ogni condizione sono riportati in una riga distinta.

I criteri di selezione dei server riportati di seguito vengono valutati sempre come falsi durante la distribuzione di un'applicazione livello dati a Database SQL: versione del sistema operativo, lingua, Named Pipes abilitato, piattaforma e tcp abilitato.

Ignora le violazioni dei criteri - Utilizzare questa casella di controllo per continuare la distribuzione se una o più delle condizioni dei criteri non sono soddisfatte. Selezionare questa opzione solo se si è sicuri che tutte le condizioni non soddisfatte non impediranno la distribuzione del pacchetto di applicazione livello dati.

< Indietro - Consente di tornare alla pagina Seleziona pacchetto.

Avanti > - consente di passare alla pagina Aggiorna configurazione.

Annulla - Consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

[Distribuzione guidata]

Pagina Aggiorna configurazione

Utilizzare questa pagina per specificare i nomi dell'istanza di applicazione livello dati distribuita e del database creato dalla distribuzione e per impostare le opzioni del database.

Nome database - Consente di specificare il nome del database da creare con la distribuzione. Il nome predefinito corrisponde al nome del database di origine da cui è stato estratto il pacchetto di applicazione livello dati. Il nome deve essere univoco all'interno dell'istanza del Motore di database ed essere conforme alle regole per gli identificatori del Motore di database.

Se si modifica il nome del database, i nomi del file di dati e del file di log verranno modificati in modo da corrispondere al nuovo valore.

Il nome del database viene inoltre utilizzato come nome dell'istanza di applicazione livello dati. Il nome dell'istanza è visualizzato nel nodo del pacchetto di applicazione livello dati, sotto il nodo Applicazioni livello dati in Esplora oggetti o sotto il nodo Applicazioni livello dati distribuite in Esplora utilità.

Le opzioni seguenti non si applicano a Database SQL e non vengono visualizzate in caso di distribuzione in Database SQL.

Usa percorso predefinito file di database - Selezionare questa opzione per creare i file di dati e di log del database nel percorso predefinito per l'istanza di Motore di database. I nomi dei file saranno creati utilizzando il nome del database.

Specifica file di database - Selezionare questa opzione per specificare un percorso o un nome diverso per i file di dati e di log.

Percorso e nome file di dati - Consente di specificare il percorso completo e il nome del file di dati. La casella viene popolata con il percorso e il nome file predefiniti. Modificare la stringa nella casella per modificare l'impostazione predefinita oppure utilizzare il pulsante Sfoglia per passare alla cartella in cui si desidera salvare il file di dati.

Percorso e nome file di log - Consente di specificare il percorso completo e il nome del file di log. La casella viene popolata con il percorso e il nome file predefiniti. Modificare la stringa nella casella per modificare l'impostazione predefinita oppure utilizzare il pulsante Sfoglia per passare alla cartella in cui si desidera salvare il file di log.

< Indietro - Consente di tornare alla pagina Selezione pacchetto di applicazione livello dati.

Avanti > - consente di passare alla pagina Riepilogo.

Annulla - Consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

[Distribuzione guidata]

Utilizzare questa pagina per controllare le azioni che verranno eseguite dalla procedura guidata durante la distribuzione del pacchetto di applicazione livello dati.

Le impostazioni seguenti saranno utilizzate per implementare l'applicazione livello dati. Controllare le informazioni visualizzate per assicurarsi che le azioni che verranno eseguite siano corrette. Nella finestra viene visualizzato il pacchetto di applicazione livello dati selezionato e il nome selezionato per l'istanza di applicazione livello dati distribuita. Nella finestra vengono inoltre visualizzate le impostazioni che verranno utilizzate durante la creazione del database associato al pacchetto di applicazione livello dati.

< Indietro - Consente di tornare alla pagina Aggiorna configurazione per modificare le selezioni effettuate.

Avanti > - Consente di distribuire il pacchetto di applicazione livello dati e visualizzare i risultati nella pagina Distribuisci applicazione livello dati.

Annulla - Consente di terminare la procedura guidata senza distribuire l'applicazione livello dati.

[Distribuzione guidata]

Pagina Distribuisci

In questa pagina viene segnalato l'esito positivo o negativo dell'operazione di distribuzione.

Distribuzione dell'applicazione livello dati - Consente di visualizzare l'esito positivo o negativo di ogni azione eseguita per distribuire il pacchetto di applicazione livello dati. Verificare le informazioni che determinano l'esito positivo o negativo di ciascuna azione. Ogni azione che ha rilevato un errore avrà un collegamento nella colonna Risultato. Fare clic sul collegamento per visualizzare un report dell'errore per l'azione.

Salva report - Consente di salvare il report della distribuzione come file HTML. Nel file viene riportato lo stato di ogni azione, inclusi tutti gli errori generati da qualsiasi azione. La cartella predefinita è la cartella SQL Server Management Studio\DAC Packages contenuta nella cartella Documenti dell'account di Windows.

Fine - Consente di terminare la procedura guidata.

[Distribuzione guidata]

Utilizzo di PowerShell

Per distribuire un'applicazione livello dati utilizzando il metodo Install() in uno script di PowerShell

  1. Creare un oggetto server SMO e impostarlo sull'istanza a cui distribuire l'applicazione livello dati.

  2. Aprire un oggetto ServerConnection e connetterlo alla stessa istanza.

  3. Utilizzare System.IO.File per caricare il file del pacchetto di applicazione livello dati.

  4. Utilizzare add_DacActionStarted e add_DacActionFinished per sottoscrivere gli eventi di distribuzione dell'applicazione livello dati.

  5. Impostare DatabaseDeploymentProperties.

  6. Utilizzare il metodo DacStore.Install per distribuire l'applicazione livello dati.

  7. Chiudere il flusso di file utilizzato per leggere il file del pacchetto di applicazione livello dati.

[Torna all'inizio]

Esempio (PowerShell)

Nel seguente esempio viene distribuita un'applicazione livello dati denominata MyApplication su un'istanza predefinita del Motore di database, utilizzando una definizione dell'applicazione livello dati in un pacchetto MyApplication.dacpac.

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## Open a Common.ServerConnection to the same instance.
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)

## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)

## Subscribe to the DAC deployment events.
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})

## Deploy the DAC and create the database.
$dacName  = "MyApplication"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
$dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()

[Torna all'inizio]

Vedere anche

Concetti

Applicazioni livello dati

Estrarre un'applicazione livello dati da un database

Identificatori del database