Procedura dettagliata: creazione e distribuzione di un progetto di database che fa riferimento ad accessi condivisi
Se più database fanno riferimento agli stessi oggetti server, è possibile creare un progetto per ogni database e un progetto server in cui importare oggetti quali accessi condivisi, chiavi o messaggi di errore personalizzati. In questa procedura dettagliata verrà configurato un ambiente di sviluppo isolato per un database che fa riferimento ad accessi condivisi importati in un progetto server. Questo ambiente è basato sul progetto di database che contiene le definizioni di tutti gli oggetti presenti nel database di produzione.
Vengono illustrate le attività seguenti:
Impostazione del progetto server condiviso
Creazione del progetto di database composto
Rendere il progetto disponibile al team (facoltativo)
Prerequisiti
È necessario avere installato Visual Studio Premium e avere accesso a una copia di SQL Server da cui importare oggetti server. Questa copia di SQL Server deve essere in esecuzione in un server in cui sia possibile distribuire il progetto di database.
Impostazione del progetto server condiviso
Quando si fa riferimento ad accessi condivisi in un ambiente di sviluppo, questi accessi sono in genere definiti in un progetto server che esiste già e che è gestito dall'amministratore del server.
Per creare il progetto server
Scegliere Nuovo dal menu File e quindi Progetto.
Verrà visualizzata la finestra di dialogo Nuovo progetto.
In Modelli installati espandere il nodo Database, quindi fare clic su SQL Server.
Nota
Se si utilizza Visual Studio Professional, in Modelli installati espandere il nodo Database e il nodo SQL Server, quindi fare clic su Avanzate.
Nell'elenco di modelli fare clic su Progetto di server di SQL Server 2008.
In Nome digitare SharedServerProject.
Non è necessario modificare i valori in Percorso e Nome soluzione.
Selezionare la casella di controllo Crea directory per soluzione, se non è già selezionata.
Deselezionare la casella di controllo Aggiungi al controllo del codice sorgente, se non è già deselezionata, e scegliere OK.
Un progetto server vuoto verrà aggiunto alla soluzione e verrà visualizzato in Esplora soluzioni.
A questo punto, è possibile importare le impostazioni e gli oggetti server.
Per importare le impostazioni e gli oggetti server
In Esplora soluzioni fare clic sul progetto SharedServerProject.
Scegliere Importa oggetti e impostazioni dal menu Progetto.
Nota
In alternativa ai passaggi 1 e 2, è possibile fare clic con il pulsante destro del mouse su SharedServerProject e quindi scegliere Imposta oggetti e impostazioni.
Nell'Importazione guidata database specificare una connessione al server da cui si desidera importare oggetti e impostazioni, quindi fare clic su Avvia.
Importante Per questa procedura dettagliata, è necessario specificare lo stesso server in cui verrà distribuito il progetto di database.
Gli oggetti e le impostazioni per il server vengono importati nel progetto.
Al termine dell'importazione degli oggetti e delle impostazioni, fare clic su Fine.
Scegliere Visualizzazione schema database dal menu Visualizza.
Espandere i nodi SharedServerProject, Oggetti a livello server, Sicurezza e infine Accessi.
Identificare e prendere nota di uno degli accessi visualizzati più avanti in questa procedura dettagliata.
A questo punto, compilare il progetto server.
Per compilare il progetto server
Scegliere Compila soluzione dal menu Compila.
Quando si compila la soluzione, si crea un file SharedServerProject.dbschema contenente le definizioni degli oggetti e le impostazioni nel progetto server. Si farà riferimento a questo file più avanti nella procedura dettagliata.
A questo punto, creare un progetto di database che utilizzi un accesso definito in questo progetto server.
Creazione del progetto di database composto
Per creare il progetto di database
Scegliere Nuovo dal menu File e quindi Progetto.
Viene visualizzata la finestra di dialogo Nuovo progetto.
In Modelli installati espandere il nodo Database, quindi fare clic su SQL Server.
Nota
Se si utilizza Visual Studio Professional, in Modelli installati espandere il nodo Database e il nodo SQL Server, quindi fare clic su Avanzate.
Nell'elenco di modelli fare clic su Progetto di database di SQL Server 2008.
In Nome digitare CompositeDBProject.
Non è necessario modificare i valori in Percorso e Nome soluzione.
Selezionare la casella di controllo Crea directory per soluzione, se non è già selezionata.
Deselezionare la casella di controllo Aggiungi al controllo del codice sorgente, se non è già deselezionata, e scegliere OK.
Un progetto di database vuoto verrà aggiunto alla soluzione e verrà visualizzato in Esplora soluzioni.
A questo punto, aggiungere un riferimento all'output dal progetto server definito in precedenza in questa procedura dettagliata.
Per aggiungere un riferimento al progetto server
In Esplora soluzioni espandere il nodo per il progetto CompositeDBProject, quindi fare clic sul nodo Riferimenti.
Scegliere Aggiungi riferimento database dal menu Progetto.
Nota
In alternativa ai passaggi 1 e 2, è possibile fare clic con il pulsante destro del mouse sul nodo Riferimenti e quindi scegliere Aggiungi riferimento al database.
Verrà visualizzata la finestra di dialogo Aggiungi riferimento database. Poiché la soluzione contiene un solo progetto di database, viene selezionato Schema progetto di database (.dbschema).
Scegliere Sfoglia.
Verrà visualizzata la finestra di dialogo Seleziona file di database.
Specificare il file SharedServerProject.dbschema creato in precedenza in questa procedura dettagliata.
È ad esempio possibile specificare il percorso seguente:
Documenti\Visual Studio 2010\Projects\SharedServerProject\SharedServerProject\sql\debug\SharedServerProject.dbschema
Fare clic su Apri.
Quando si crea un riferimento a un file con estensione dbschema creato da un progetto server, per impostazione predefinita il riferimento viene impostato in modo che venga utilizzato il valore "master" letterale per fare riferimento ai relativi oggetti. Non si tratta di un riferimento composto, perché è stato definito un valore della variabile database. È necessario definire solo una variabile database se rappresenta un database diverso.
Scegliere OK.
Verrà aggiunto un riferimento al progetto server. È ora possibile utilizzare qualsiasi oggetto definito in quel progetto server come se fossero definiti nel progetto di database corrente.
A questo punto, aggiungere un oggetto utente al progetto di database. L'oggetto utente utilizza un accesso definito nel progetto server.
Per aggiungere un utente al progetto di database
Scegliere Visualizzazione schema database dal menu Visualizza.
Espandere i nodi CompositeDBProject e Security, fare clic con il pulsante destro del mouse sul nodo Utenti, selezionare Aggiungi e quindi Utente.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.
In Nome digitare MyUser, quindi fare clic su Aggiungi.
L'utente verrà aggiunto al progetto di database e verrà visualizzato nella Visualizzazione schema. Verrà aperto l'editor Transact-SQL e verrà visualizzata la definizione dell'utente.
Nell'editor Transact-SQL aggiornare la definizione dell'utente in base all'esempio seguente:
CREATE USER [MyUser] FOR LOGIN [SharedLogin] WITH DEFAULT_SCHEMA = dbo;
Importante È necessario sostituire [SharedLogin] con l'accesso identificato nel passaggio 7 della procedura "Per importare le impostazioni e gli oggetti server".
Scegliere Salva MyUser.user.sql dal menu File.
A questo punto, definire un ruolo database.
Per definire un ruolo database
In Visualizzazione schema espandere i nodi CompositeDBProject e Security e quindi il nodo Ruoli.
Fare clic con il pulsante destro del mouse sul nodo Ruoli database,selezionare Aggiungi e quindi Ruolo database.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.
In Nome digitare DbAccounting, quindi fare clic su Aggiungi.
Il ruolo verrà aggiunto al progetto di database e verrà visualizzato nella Visualizzazione schema. Verrà aperto l'editor Transact-SQL e verrà visualizzata la definizione del ruolo.
Scegliere Salva DbAccounting.role.sql dal menu File.
A questo punto, configurare le proprietà di distribuzione per il progetto di database.
Per associare l'utente al nuovo ruolo database
Espandere i nodi Script e Post-distribuzione, quindi fare doppio clic su Script.PostDeployment.sql.
Viene aperto l'editor Transact-SQL e visualizzato lo script di post-distribuzione.
Nella parte inferiore dello script post-distribuzione aggiungere l'istruzione Transact-SQL:
exec sp_addrolemember 'DbAccounting','MyUser';
Scegliere Salva Script.PostDeployment.sql dal menu File.
A questo punto, configurare le proprietà di distribuzione per il progetto di database.
Per configurare il progetto di database per la distribuzione
In Esplora soluzioni fare clic su CompositeDBProject(il progetto di database).
Scegliere Proprietà di CompositeDBProject dal menuProgetto.
Verranno visualizzate le proprietà per il progetto.
Fare clic sulla scheda Distribuisci.
Nell'elenco Azione di distribuzione fare clic su Crea uno script di distribuzione (.sql) e distribuisci nel database.
In Impostazioni database di destinazione fare clic su Modifica e specificare una connessione al server e al database in cui si desidera distribuire il progetto di database.
Nota
Se non si specifica lo stesso server da cui si sono importati gli oggetti server, la distribuzione avrà esito negativo perché gli accessi sono definiti in quel server.
Scegliere Salva elementi selezionati dal menu File.
A questo punto, compilare il progetto di database.
Per compilare il progetto di database
Scegliere Compila soluzione dal menu Compila.
Il progetto viene compilato senza errori.
A questo punto, distribuire il progetto di database nel database e nel server di destinazione.
Per distribuire il progetto di database
Scegliere Distribuisci CompositeDBProject dal menu Compila.
Il progetto verrà distribuito senza errori.
Rendere il progetto disponibile al team (facoltativo)
Per aggiungere il progetto al controllo delle versioni
In Esplora soluzioni fare clic sul nodo per la soluzione CompositeDBProject.
Scegliere Controllo del codice sorgente dal menu File e quindi Aggiungi soluzione a controllo del codice sorgente.
Nota
È possibile interagire con il software di controllo della versione installato. In questa procedura dettagliata viene illustrato come aggiungere il progetto a Visual Studio Team Foundation Server. Se si dispone di un altro software di controllo della versione, è necessario sostituire i passaggi equivalenti.
Se si utilizza Team Foundation Server, verrà visualizzata la finestra di dialogo Connetti a Team Foundation Server.
In Connetti a un Team Foundation Server scegliere il server che ospita il progetto Team a cui si desidera aggiungere la soluzione.
Nota
Se non si dispone di un progetto Team al quale aggiungere il progetto di database, vedere Pianificazione e rilevamento di progetti.
In Progetti Team scegliere il progetto Team al quale si desidera aggiungere il progetto di database e quindi OK.
Verrà visualizzata la finestra di dialogo Aggiungi soluzione CompositeDBProject al controllo del codice sorgente.
Scegliere OK per accettare i valori predefiniti.
Il progetto di database e i file in esso contenuti verranno sottoposti al controllo delle versioni. Inizialmente sono ancora estratti. È necessario archiviarli per consentire l'accesso ad altri membri del team.
Scegliere Altre finestre dal menu Visualizza e quindi Modifiche in sospeso.
Verrà visualizzata la finestra Modifiche in sospeso.
In Commento digitare Creazione progetto di database iniziale.
Sulla barra degli strumenti della finestra Modifiche in sospeso fare clic su Archivia.
Durante l'archiviazione del progetto di database e dei relativi file viene visualizzata la finestra di dialogo Stato archiviazione. Le icone in Esplora soluzioni vengono aggiornate per indicare che i file sono archiviati nel controllo della versione.
Passaggi successivi
Con il progetto di database archiviato nel controllo della versione, i membri del team possono continuare a sviluppare il progetto di database. Gli sviluppatori di database non devono modificare il progetto server. Di conseguenza, è possibile limitare le relative autorizzazioni in modo che possano vedere, ma non modificare gli oggetti condivisi.
Vedere anche
Concetti
Avvio dello sviluppo in team di database che fanno riferimento a oggetti server condivisi
Panoramica sui progetti di database e server
Avvio dello sviluppo in team di database
Avvio dello sviluppo in team di database che fanno riferimento ad altri database
Avvio dello sviluppo in team di database che fanno riferimento a oggetti SQLCLR