White paper tecnico su SQL Server
Autori: Eric Brown, consulente, Quilogy Inc.
Pubblicato: marzo 2006
Relativo a: SQL Server 2005
Riepilogo: Informazioni su come gestire SQL Server 2005 Express Edition tramite lo strumento gratuito di gestione grafica, SQL Server 2005 Management Studio Express Edition (SSMSE). Gli sviluppatori e gli amministratori scopriranno come utilizzare le funzionalità di SSMSE per semplificare, automatizzare e ridurre la complessità delle operazioni di supporto e amministrazione dei database.
Prerequisiti:
SQL Server 2005 Express Edition
CTP di novembre su SQL Server 2005 Management Studio Express Edition
SQL Server 2005 Management Studio Express Edition (SSMSE) fornisce agli sviluppatori e agli amministratori di database un solido set di strumenti per lavorare con Microsoft® SQL Server™ Express Edition. Basato sulla stessa tecnologia e funzionalità di SQL Server Management Studio, SSMSE utilizza le interfacce utente di Microsoft Visual Studio® .NET 2005 e il layout IDE che consentono un facile passaggio tra SSMSE e Visual Studio .NET 2005. Questa interfaccia familiare consente agli sviluppatori .NET di aumentare la produttività in tempi più rapidi.
Le funzionalità di SSMSE sono limitate a quelle necessarie a gestire un database SQL Server 2005 Express Edition. Con SSMSE, è possibile gestire altre edizioni di SQL Server 2005, ma non i componenti del server non contenuti in SQL Server Express. Ad esempio, è possibile connettersi esclusivamente al motore di database relazionale solo mediante SSMSE poiché gli altri servizi non vengono installati con SQL Server Express.
SSMSE e SQL Server Management Studio (SSMS) non possono essere installati insieme. Se vengono installate più versioni di SQL Server nel computer, è possibile utilizzare SSMS, ma non SSMSE.
Nelle seguenti sezioni viene offerta una panoramica delle funzionalità di SSMSE. Grazie all'interfaccia grafica utente, è possibile accedere a molte funzionalità di SSMSE facendo clic con il pulsante destro del mouse. Molte attività possono essere eseguite utilizzando sia gli script sia le finestre di dialogo. Gli sviluppatori alle prime armi utilizzeranno le finestre di dialogo per eseguire attività di base.
SQL Server è progettato per creare uno stato predefinito sicuro e funzionale. Le modifiche alle impostazioni predefinite servono a impostare il database per le necessità uniche di utenti e applicazioni.
Partendo dal presupposto che sia stato installato SQL Server 2005 Management Studio Express Edition, facciamo l'ipotesi di connessione a un'istanza.
In questa sezione viene descritta la connessione a un'istanza di SQL Server Express. La finestra di dialogo Connetti al server consente agli utenti di fornire sia le credenziali di accesso sia specifiche proprietà di connessione. È possibile utilizzarle per connettersi direttamente a SQL Server Express.
Tra i metodi di autenticazione, è possibile scegliere tra Autenticazione di SQL Server o Autenticazione di Windows. Per impostazione predefinita, il metodo è impostato su Autenticazione di Windows.
Nella finestra di dialogo Connetti al server ci sono due schede: la scheda Account di accesso e la scheda Proprietà connessione . Per visualizzare la scheda Proprietà connessione, scegliere il pulsante Opzioni . Utilizzare la scheda Proprietà connessione (Figura 1) per inserire le credenziali di autenticazione e il nome server.

Figura 1. Scheda Proprietà connessione
Nella finestra di dialogo Connetti al server, è possibile scegliere quale database connettere e quale metodo di rete utilizzare (TCP/IP, Named Pipes o memoria condivisa). La finestra di dialogo consente di crittografare la connessione e ha impostazioni aggiuntive per Timeout connessione e Dimensioni pacchetto di rete.
Il protocollo di rete predefinito è il protocollo di memoria condivisa. È questo il protocollo da utilizzare se il database risiede localmente e non riceve connessioni attraverso la rete. Se ci si connette a un'istanza remota di SQL Server Express, selezionare TCP/IP.
Di solito non c'è motivo di cambiare le dimensioni predefinite del pacchetto. Se è noto che la risoluzione della connessione richiederà più di 15 secondi, modificare il timeout connessione finché la connessione non viene stabilita. È possibile premere il pulsante Test e modificare il timeout a incrementi finché la connessione non viene stabilita.
È possibile impostare l'opzione di avvio su Apri ambiente vuoto,, che consente di avviare SSMSE più rapidamente. Dal menu Strumenti, scegliere Opzioni.. Scegliere Ambiente,quindi Generale.. Dopo avere avviato SSMSE, fare doppio clic sul server registrato cui connettersi: non si dovrà interagire con la finestra di dialogo di connessione.
Il metodo principale per organizzare più server di database è la finestra Server registrati, nella quale sono elencate le istanze di SQL Server registrate in SSMSE. Dopo che la connessione al server di database è stata stabilita, si vedono numerose finestre. È possibile esaminare il gruppo di connessioni server (o collegamenti ai server) nel server registrato della finestra Server registrati. Se la finestra Server registrati non è visibile dal menu Viste, scegliere Server registrati.
È possibile creare un gruppo di server, che può comprendere server registrati individualmente. In un ambiente di hosting, dove su un singolo server di database possono essere installate più istanze di SQL Server Express, i gruppi di server consentono di lavorare tra i vari server in modo efficiente. Ad esempio, nella figura 2 viene visualizzata una finestra chiamata Server Express. La cartella contiene due server.

Figura 2. Finestra Server registrati
La finestra Server registrati consente di:
| • | Interrompere, avviare, sospendere o riavviare un'istanza di SQL Server Express. |
| • | Connettersi a una nuova finestra di query. |
| • | Connettersi a una nuova finestra Esplora oggetti. |
| • | Aprire Gestione configurazione SQL Server. |
È inoltre possibile variare le proprietà dei server registrati. Per farlo, fare clic con il pulsante destro del mouse sul server da modificare e fare clic su Proprietà.
Esplora oggetti è il punto di partenza quando si lavora con un database. Quando si fa clic sul segno di addizione accanto a un database, vengono visualizzati solo gli oggetti correlati al database. I privilegi di accesso utente utilizzati per connettersi al database regolano la disponibilità degli oggetti. Se non si è connessi a un database dall'inizio, è possibile connettersi facendo clic sul pulsante di connessione nell'angolo superiore sinistro della finestra Esplora oggetti.
Nella figura 3 sono illustrati i vari oggetti disponibili. La cartella Database di sistema, nella cartella Database, separa i database di sistema perché SQL Server li utilizza per gestire i processi di database.

Figura 3. Esplora oggetti
Da Esplora oggetti è possibile fare clic su qualsiasi icona di database e vedere un'altra serie di cartelle. Il database della figura 4 ha una serie di diagrammi, tabelle, viste, sinonimi e altro ancora.

Figura 4. Funzionalità a livello di database
Fare clic sulla cartella per visualizzare gli oggetti in essa archiviati. La cartella Programmabilità contiene stored procedure, funzioni, trigger di database, assembly, tipi definiti dall'utente, regole e valori predefiniti. La cartella Tipi della cartella Programmabilità contiene tipi di dati sia di sistema sia definiti dall'utente. Dopo aver creato un tipo di dati, è possibile gestirlo da questa cartella.
Uno dei modi migliori di prendere familiarità con SSMSE è quello di creare un database e impostare un sistema di amministrazione reale.
Esistono molti modi di creare un database in SQL Server 2005. Il mio preferito è quello di fare clic con il pulsante destro sulla cartella Database e scegliere Nuovo database. Viene visualizzata la finestra di dialogo Nuovo database, che consente di specificare le impostazioni del database. La finestra contiene tre schede. La scheda Generale consente di specificare il nome database in una casella di testo. La scheda Opzioni contiene le impostazioni per la compattazione automatica, la chiusura automatica, il comportamento del cursore e i valori di stato e di ripristino. In molti casi, è possibile mantenere le impostazioni predefinite per questi valori. I valori standard funzionano per la maggior parte degli scenari di utilizzo.
Nella figura 5 è fornito un esempio della finestra di dialogo Nuovo database.

Figura 5. Finestra di dialogo Nuovo database
Nella scheda Filegroup è possibile fornire allocazioni ai filegroup.
La finestra di dialogo Nuovo database non è a scelta obbligatoria e consente di inserire script in tutte le impostazioni di una finestra dell'editor di query, in un file o negli Appunti. Per visualizzare queste opzioni, fare clic sul pulsante Script in alto nella finestra di dialogo, oppure fare clic su OK e il database verrà creato.
Tenere presente che il proprietario predefinito del database è l'utente connesso che crea il database. È possibile immettere il nome di un altro utente connesso come proprietario del database.
Dopo aver creato il database, si passa a creare le tabelle. Se si progetta la struttura di un database da zero, è possibile utilizzare Progettazione database o Progettazione tabelle per creare il database in modo visivo tramite un diagramma di database o facendo clic con il pulsante destro sulla cartella Tabella e scegliendo Nuova tabella.
È possibile lavorare con il diagramma di database per costruire in modo visivo le relazioni tra le tabelle. Dopo che il diagramma di database è stato salvato, vengono creati le tabelle e gli oggetti. Non è possibile ritornare a una versione precedente quando si lavora su un diagramma di database.
È inoltre possibile utilizzare un modello predefinito, cui si accede da Esplora modelli. Per visualizzarli, dal menu Vista, scegliere Modelli. I modelli sono file boilerplate contenenti script SQL per creare oggetti nel database. Nella sezione Utilizzo di Esplora modelli vengono descritti i modelli.
Il metodo più diretto per creare una tabella è quello di fare clic con il pulsante destro nella cartella Tabelle del database utente e scegliere Crea tabella. Viene avviato Progettazione tabella, che fornisce un metodo semplice per creare oggetti di database.
Come mostrato nella figura 6, sono necessari tre valori per creare una tabella : Nome colonna,, Tipo di datie Consenti valori Null. Denominare le colonne utilizzando un nome che illustri il contenuto della colonna. Ad esempio, una colonna contenente un nome può essere denominata Fname. Alcuni sviluppatori consigliano di aggiungere al nome informazioni sui valori Null e sui tipi di dati.

Figura 6. Progettazione tabella
La colonna Consenti valori Null specifica se il campo o la colonna possono essere vuoti.
I metadati delle colonne diversi dal nome della colonna, dal tipo di dati e dal supporto dei valori Null possono essere immessi nel riquadro Proprietà colonna nella parte inferiore della finestra Progettazione tabelle.
In SQL Server 2005 sono disponibili molti tipi di dati. I più comuni sono varchar, integer, money e datetime. Quando si progetta una tabella è importante avere esperienza di tipi di dati. Ogni tipo di dati archivia i valori in modo diverso e ha caratteristiche diverse che si riflettono sulle prestazioni delle query. Sarà utile comprendere i tipi di dati per lo sviluppo delle applicazioni. La scelta del tipo di dati giusto consente una maggiore flessibilità e una migliore qualità dei dati.
Per una discussione approfondita sui tipi di dati, vedere gli argomenti correlati sul sito Web Microsoft Developer Network (MSDN) e nella documentazione in linea di SQL Server.
Un diagramma di database è una rappresentazione visiva delle tabelle e delle relative relazioni nel database. I diagrammi di database sono utili quando si lavora con database complessi. Aiutano ad accelerare lo sviluppo. Possono essere stampati e utilizzati come riferimento per scrivere codice nel linguaggio Transact-SQL.
Tenere presente che le attività eseguibili in Progettazione tabella possono anche essere eseguite in Progettazione database. I metadati della colonna possono essere modificati in Progettazione database allo stesso modo in cui vengono modificati in Progettazione tabella.
Per creare un diagramma di database, spostarsi alla nuova cartella denominata Diagrammi database negli oggetti di database specifici di Esplora oggetti. Fare clic con il pulsante destro del mouse sulla cartella e scegliere Nuovo diagramma database. Viene visualizzata la progettazione diagramma database.
I diagrammi database forniscono una base visiva per la lettura degli oggetti tabella in un database. Nell'elenco seguente si riassumono i risultati ottenuti con lo strumento diagramma database.
| • | Aggiungere tabelle esistenti. Dopo aver aggiunto una tabella, all'interno del diagramma, fare clic su Aggiungi tabelle correlate e la tabella apparirà nel diagramma. Questa funzione è utile per scoprire le relazioni tra tabelle visto che, per recuperare le tabelle correlate, vengono utilizzate le relazioni di chiave esterna e primaria. |
| • | Creare nuove tabelle. Per creare una nuova tabella, fare clic con il pulsante destro del mouse all'interno del diagramma e scegliere Nuova tabella. |
| • | Regolare il layout del diagramma di database, impostando il layout di pagina, aggiungendo commenti testuali e nascondendo o visualizzando le relazioni tra le tabelle. È possibile ingrandire o ridurre il diagramma, esportarlo e copiarlo negli Appunti. |
| • | Modificare la struttura del database, aggiungendo o rimuovendo gli indici, i vincoli CHECK e gli indici XML. |
È possibile immaginare una vista come una versione archiviata di una query. La vista può essere utilizzata per generare report di base sui dati. Si prenda l'esempio di un'applicazione di e-commerce che riceve gli ordini dai clienti. La vista può essere utilizzata per accedere ai dati di riepilogo, quali il totale ordini o la somma dei prodotti venduti.
Il modo più semplice di creare una vista è utilizzare Progettazione viste. Per avviare Progettazione viste, fare clic con il pulsante destro del mouse sulla cartella Viste e scegliere Nuova vista. Progettazione viste viene aperto nella finestra dell'editor di query come mostrato nella figura 7.

Figura 7. Creazione di una vista con Progettazione viste
Progettazione viste contiene quattro riquadri:
| • | Diagramma |
| • | Criteri |
| • | SQL |
| • | Risultati |
Il riquadro Diagramma è quello superiore. Facendo clic sul segno di spunta si aggiungono le colonne al riquadro Colonna e alla definizione della vista.
All'interno del riquadro Colonna è possibile creare un alias di colonna, utile se il nome colonna non è facilmente riconoscibile, oppure se si desidera mantenere segreto il nome della colonna. Gli alias consentono, inoltre, di rendere leggibile il codice e sono utili nelle query in cui tutte le tabelle hanno chiavi primarie sintetiche. Ad esempio, un alias può essere utilizzato per assegnare, nella propria vista, alla colonna id dalla tabella del dipendente il nome id_dipendente e alla colonna id dalla tabella del reparto il nome id_reparto .
La casella di controllo Output indica che la colonna restituirà i risultati alla finestra.
Esistono due tipi di ordinamento: crescente e decrescente. Il criterio di ordinamento consente di organizzare anche i risultati più complessi.
Per includere o escludere valori specifici nei risultati, utilizzare un filtro, ad esempio un filtro che escluda i prezzi con valore Null.
Quando si progetta una vista in modo interattivo, è utile considerare i dati che verranno restituiti dalla vista. Fare clic sul pulsante con il punto esclamativo per eseguire SQL nella vista. I risultati vengono mostrati nel riquadro Risultati nella parte inferiore della finestra di progettazione.
Fino a questo punto, sono stati creati un database, una tabella, una vista e un diagramma senza scrivere una riga di codice. È arrivato il momento di scrivere codice. Lo strumento utilizzato a questo scopo è l'editor di query. Di seguito sono elencate alcune funzioni dell'editor di query.
| • | Progettazione query semplifica la progettazione di una query nell'editor di query. Fare clic con il pulsante destro del mouse all'interno dell'area di testo di un riquadro di query e scegliere Progetta query nell'editor. Viene visualizzata una finestra di dialogo Progettazione query che è possibile utilizzare per progettare il testo selezionato nell'editor di query. Progettazione query è uno strumento grafico molto simile a Progettazione viste. È possibile aggiungere ed eliminare tabelle e viste nel riquadro Diagramma, manipolare graficamente i criteri, vedere in anteprima (o modificare) Transact-SQL nel riquadro SQL e visualizzare i risultati nel riquadro Risultati. |
| • | È possibile utilizzare i modelli per accelerare lo sviluppo di istruzioni Transact-SQL quando si creano oggetti SQL Server. I modelli sono file che includono la struttura di base delle istruzioni Transact-SQL necessarie per creare oggetti in un database. |
| • | I risultati delle query vengono presentati in una griglia o in una finestra con testo libero. |
| • | Informazioni showplan sono disponibili come opzione di query. Lo showplan illustra i passaggi logici integrati nel file di esecuzione di un'istruzione Transact-SQL. |
Per aprire una nuova finestra Query
1. | fare clic con il pulsante destro del mouse su un database e scegliere Nuova query. In alternativa, dal menu File, scegliere Nuova query. | ||||||||||||||||||||||
2. | Dalla finestra principale, fare clic sul pulsante Nuova query. | ||||||||||||||||||||||
3. | La finestra dell'editor di query è molto più di uno strumento di testo libero. Facendo clic con il pulsante destro del mouse nella finestra si vedono le numerose funzionalità da utilizzare. Fare clic con il pulsante destro del mouse in un qualsiasi punto dell'editor di query per:
|
Per alcuni principianti sarà difficile scrivere query. Sarà bene essere organizzati, per non rendere la scrittura delle query ancora più difficile.
In questa sezione viene descritto come utilizzare l'editor di query per personalizzare la presentazione del testo delle query.
L'ordine delle colonne nella query non è importante. A dire il vero, è possibile scegliere nell'editor il layout preferito per la query. Esistono, tuttavia, dei metodi consigliati per organizzare il testo in istruzioni batch.
Nelle istruzioni brevi, non c'è motivo di utilizzare i commenti a meno che non si condivida il frammento di codice oppure si faccia una domanda. I commenti forniscono informazioni su quello che fa il codice. Chiunque non abbia familiarità con il codice può leggere i commenti e capire che cosa accade quando viene eseguito il codice. Il processore delle query potrebbe trovare da ridire sui commenti se non si utilizza una sintassi corretta. È obbligatorio utilizzare il simbolo “—“. I commenti vengono applicati con un doppio trattino lungo. Il seguente esempio di codice illustra una modalità di scrittura delle query.
/*comment out your code—
--when you write a query—always start the batch with a USE directive like—
USE AdventureWorks
--followed by GO
GO
-- Then move onto your statement(s)*/
Vedere il risultato nella figura 8.

Figura 8. Formattazione di una query tramite l'editor di query
Per ulteriori informazioni su come scrivere codice Transact-SQL, vedere la sezione SQL Server 2005 Express Edition User Instances (in inglese) in MSDN.
I modelli consentono di accelerare il processo di scrittura delle query.
Per aprire Esplora modelli, dal menu Vista, scegliere Esplora modelli. Esplora modelli contiene molti modelli per creare oggetti di database. I modelli aiutano a capire Transact-SQL: ognuno contiene tutto il codice necessario a creare un determinato oggetto di database. È possibile modificare i nomi degli elementi del modello e aggiungere codice ad esso.
In ogni modello si trova codice che illustra il modo migliore di scrivere Transact-SQL. Molti modelli sono complessi; pertanto, se non si sa come iniziare a utilizzare un modello, è sufficiente scegliere il pulsante per modificare i parametri nella finestra principale come illustrato nella figura 9.

Figura 9. Modifica dei parametri per un modello
Quando si fa clic su questo pulsante, si apre una finestra di dialogo simile a quella riprodotta nella figura 10. Modificare i nomi e i valori secondo necessità. Quando si fa clic su OK, il parametro modificato viene visualizzato nuovamente nella finestra dell'editor di query.

Figura 10. Finestra Imposta valori per parametri modello
A questo punto si ha una conoscenza di base di come creare gli oggetti di base che costituiscono un database. Nelle sezioni seguenti, si esaminerà la gestione del database e del server tramite SSMSE.
Indipendentemente dall'esperienza che si ha come sviluppatore o amministratore di database, è necessario disporre di alcune conoscenze di base relative all'amministrazione di database. Di seguito sono riportate le funzioni di base per l'amministrazione di database.
| • | Gestione del sistema. Assicurarsi che i servizi e le funzionalità appropriate siano accessibili e operativi. In SQL Server 2005, alcune funzionalità sono disattivate per impostazione predefinita. Inoltre, SQL Server Express è configurato per impedire l'ascolto sulla rete tramite TCP/IP. |
| • | Gestione della protezione. Gestione dell'accesso ai dati. Questo processo inizia nel sistema operativo e termina con il database. In questo articolo si tratteranno solo gli argomenti di protezione relativi agli utenti e agli accessi. |
| • | Preparazione alle situazioni di emergenza. Recupero dagli errori utente e dagli errori hardware e software. In questo articolo si parlerà del backup dei database, dei modelli di recupero e dell'utilizzo degli script per consentire la ricreazione degli oggetti e dei dati dei database. |
Nelle sezioni seguenti si esamineranno le modalità di gestione delle attività di amministrazione dei database tramite SQL Server Browser, Gestione configurazione SQL Server e lo strumento Configurazione superficie di attacco. Si prenderanno in esame le attività di gestione del sistema, le impostazioni di protezione e i modelli di backup e recupero.
Se SQL Server Express viene installato utilizzando le impostazioni predefinite, la configurazione di protezione è massima. Microsoft la definisce una configurazione protetta per impostazione predefinita. Dopo l'installazione di SQL Server Express occorrerà, se necessario, riconfigurare parti del server a seconda dell'utilizzo previsto. Per esempio, per impostazione predefinita SQL Server Express consente solo connessioni locali. Se occorre connettersi a SQL Server Express attraverso la rete, configurare SQL Server Express in modo da consentire le connessioni remote. Sono disponibili numerosi strumenti per ottenere varie attività di configurazione.
Lo strumento Configurazione superficie di attacco fornisce un'interfaccia di scripting per impostare gli stati di protezione globali per le funzionalità e i servizi di SQL Server. Poiché SQL Server 2005 segue il principio della sicurezza, molte funzioni sono disattivate per impostazione predefinita. Inoltre, se non specificato diversamente, i servizi scelti per l'installazione non vengono avviati automaticamente al termine del processo di installazione. Utilizzare lo strumento Configurazione superficie di attacco per configurare SQL Server e gestire la sicurezza di SQL Server.
Lo strumento Configurazione superficie di attacco può essere utilizzato per attivare e disattivare i servizi e le funzioni, nonché per modificare le impostazioni di configurazione. Fornisce due metodi di ordinamento di base: Visualizza per istanza e Visualizza per componente. Utilizzare Visualizza per componente per accedere e gestire rapidamente determinati raggruppamenti di funzioni. Visualizza per istanza consente di controllare una specifica istanza di SQL Server e apportare eventuali modifiche.
Se si prevede che le applicazioni si connettano a un'istanza di SQL Server Express attraverso la rete, occorrerà attivare le connessioni remote tramite TCP/IP e attivare SQL Server Browser. SQL Server Browser è illustrato nella sezione Servizio SQL Server Browser del presente articolo. In questa sede, viene descritto in che modo attivare le connessioni remote utilizzando lo strumento Configurazione superficie di attacco.
Per spostarsi sulle interfacce per l'uso di servizi e connessioni remote, selezionare Configurazione superficie di attacco per servizi e connessioni dalla schermata iniziale nello strumento Configurazione superficie di attacco.
Per visualizzare le impostazioni delle connessioni remote, fare clic su Connessioni remote nel pannello Caratteristiche dello strumento Configurazione superficie di attacco come mostrato nella figura 11. Attivare le connessioni remote e TCP/IP. Nella figura 11 viene illustrata la configurazione delle connessioni remote tramite protocollo TCP/IP. Non utilizzare Named Pipes a meno che non si sappia come utilizzare questo protocollo.

Figura 11. Autorizzazioni remote
Per finalizzare le impostazioni della connessione remota, fare clic su Applica.
Le applicazioni che provano a connettersi all'istanza devono essere in grado di trovare il server sulla rete.
Per risolvere le richieste o essere in attesa di richieste di SQL Server Express, occorre attivare il servizio SQL Server Browser. Il servizio SQL Server Browser fornisce la risoluzione dei nomi per le applicazioni che provano a connettersi a SQL Server Express tramite la rete. Per avviare SQL Server Browser, fare clic su SQL Server Browser nello strumento Configurazione superficie di attacco. Attivare il servizio e fare clic su Applica.
Se si desidera che il servizio si attivi automaticamente a ogni avvio del server, scegliere Automatico. Se si sceglie Manuale, quando il sistema operativo si riavvia occorre aprire lo strumento Configurazione superficie di attacco e avviare il servizio SQL Server Browser.
Avviso: L'attivazione di SQL Server Browser consente le connessioni da Internet al computer. Per ragioni di sicurezza, è bene disattivare SQL Server Browser sui computer connessi direttamente a Internet. Se c'è una sola istanza di SQL Server in esecuzione sul computer, la prima istanza viene automaticamente associata alla porta 1433; si tratta della porta predefinita cui i client proveranno a collegarsi.
Se sono in esecuzione più istanze di SQL Server e si preferisce non eseguire SQL Server Browser, è possibile assegnare a ogni istanza di SQL Server una porta TCP/IP ed eseguire la connessione esplicita a tale porta.
Gestione configurazione SQL Server fornisce un controllo dettagliato dei servizi e dei protocolli di rete utilizzati da SQL Server 2005. Gestione configurazione SQL Server è un'applicazione snap-in MMC che consolida in una sola applicazione le utilità Servizio di rete di SQL Server 2000 e Servizi. In Gestione configurazione SQL Server è possibile modificare esplicitamente le porte e gli indirizzi IP, creare e distruggere gli alias dei server, attivare e disattivare i protocolli e altro ancora. Per gestire i servizi è possibile utilizzare Gestione configurazione SQL Server per avviare e arrestare i servizi, modificare le credenziali di accesso e ricercare i servizi nelle impostazioni del Registro di sistema di Windows.
Nella tabella 1 si confrontano le funzionalità di Gestione configurazione SQL Server con quelle dello strumento Configurazione superficie di attacco.
| Funzionalità | Strumento Configurazione superficie di attacco di SQL Server | Gestione configurazione SQL Server |
Avvio e arresto dei servizi | SÌ | SÌ |
Attivazione e disattivazione delle funzionalità | SÌ | NO |
Configurazione dei client di rete | NO | SÌ |
Configurazione dei client nativi | NO | SÌ |
Gestione delle connessioni remote | SÌ | SÌ |
Creazione di alias di rete | NO | SÌ |
Impostazione di alias | NO | SÌ |
Modifica degli indirizzi TCP/IP | NO | SÌ |
Tabella 1 Confronto tra Gestione configurazione SQL Server e lo strumento Configurazione superficie di attacco
Quando viene avviata un'istanza di SQL Server, se il protocollo TCP/IP è attivato il server viene assegnato a una porta TCP/IP. Se il protocollo Named Pipes è abilitato, SQL Server è in attesa su una named pipe specifica. Questa porta, o pipe, viene utilizzata da quell'istanza specifica per scambiare dati con le applicazioni client. In fase di installazione, la porta TCP 1433 e pipe \sql\query vengono assegnate all'istanza predefinita. L'amministratore server può utilizzare Gestione configurazione SQL Server per modificare queste impostazioni. Dal momento che solo un'istanza di SQL Server può utilizzare una data porta o pipe, alle istanze denominate vengono assegnati numeri di porta e nomi di pipe diversi. Per impostazione predefinita, quando le istanze denominate vengono configurate per utilizzare le porte dinamiche, una porta disponibile viene assegnata all'avvio di SQL Server. Se si preferisce, è possibile assegnare una porta specifica a un'istanza di SQL Server.
All'avvio, SQL Server Browser utilizza la porta UDP 1434. SQL Server Browser legge il Registro di sistema, identifica tutte le istanze di SQL Server sul computer e prende nota di quali porte e named pipe sono da esse utilizzate. Se un server dispone di due o più schede di rete, SQL Server Browser restituisce la prima porta attivata che incontra per SQL Server. SQL Server 2005 e SQL Server Browser supportano IPv6 e IPv4. Quando i client di SQL Server 2005 richiedono le risorse di SQL Server, la libreria di rete client utilizza la porta 1434 per inviare un messaggio UDP al server. SQL Server Browser risponde con la porta TCP/IP o la named pipe dell'istanza richiesta. La libreria di rete dell'applicazione client completa la connessione inviando una richiesta al server utilizzando la porta o named pipe dell'istanza desiderata.
Avviso: Per motivi di sicurezza, è opportuno lasciare disattivato SQL Server Browser sui computer direttamente connessi a Internet.
Questa sezione tratta dei concetti di protezione di base relativi ai database SQL Server Express. In SQL Server 2005 esistono due meccanismi di autenticazione: Autenticazione di SQL Server e Autenticazione di Windows.
Gli account di accesso sono entità server che possono connettersi a un determinato server. Gli account di accesso utilizzano l'Autenticazione di Windows o l'Autenticazione di SQL Server per farsi riconoscere dal server. L'Autenticazione di Windows utilizza le credenziali dell'account Microsoft Windows (o del gruppo di Windows cui appartiene l'account Windows) che viene eseguito. L'Autenticazione di SQL Server utilizza un nome utente e una password forniti da SQL Server al di fuori dell'infrastruttura di protezione di Windows. L'Autenticazione di Windows è più facile da usare per gli utenti di database, in quanto è automatica: non richiede un nome di accesso o una password. L'Autenticazione di Windows è più sicura, in quanto si affida a Windows per mantenere le informazioni di protezione e non al database di protezione locale di SQL Server.
Microsoft consiglia di utilizzare l'Autenticazione di Windows. Sussistono, tuttavia, condizioni in cui è preferibile utilizzare l'Autenticazione di SQL Server.
Gli utenti costituiscono l'entità di protezione cui un account di accesso esegue il mapping per un determinato database. Il mapping consente di assegnare a un account di accesso privilegi diversi in database diversi. Un account di accesso può avere eseguito il mapping come proprietario (dbo) di un certo database (con privilegi illimitati per quel database); lo stesso account può essere un utente che ha solo accesso in lettura ad alcune tabelle di un altro database.
In genere, il flusso di lavoro degli amministratori di database consiste nel creare innanzitutto un account di accesso, quindi creare gli utenti di quell'account nei database a cui gli account avranno accesso.
Alcune semplici definizioni aiuteranno ad ampliare la comprensione dei termini.
Account di accesso di Autenticazione di Windows: un'entità che è membro di un dominio o computer locale. Si tratta dell'account di Windows che può accedere a un computer. Gli account di accesso di Autenticazione di Windows possono essere creati sia per gli account di Windows sia per i gruppi di Windows. L'account di accesso di Autenticazione di Windows è mappato a un account di accesso di SQL Server.
Account di accesso SQL: un'entità che è in grado di accedere a un'istanza server e che risiede all'interno di un'istanza SQL Server. Questo account di accesso può assumere ruoli sia a livello di server sia a livello di database.
Utente SQL: un utente di database i cui ruoli e privilegi sono regolati a livello di database. Questo utente assume solo ruoli a livello di database.
Protezione basata sul ruolo è il modo consigliato di fornire accesso ai database. In questo tipo di protezione, si assegnano i privilegi oggetto ai ruoli, per poi aggiungere e rimuovere gli utenti dai ruoli. In questo modo è facile amministrare la protezione, in quanto non si devono gestire le autorizzazioni per ogni utente a livello di ogni oggetto. La protezione basata sui ruoli è un modo efficiente di gestire l'accesso ai database quando il numero di tabelle, viste e altri oggetti di un database raggiungono le centinaia o le migliaia.
Per ulteriori informazioni:
Per ulteriori informazioni sulla gestione della protezione, vedere i seguenti articoli su MSDN.
Per ulteriori informazioni su come creare un utente, vedere CREATE LOGIN (Transact-SQL)
Per ulteriori informazioni su come creare un account di accesso, vedere CREATE USER (Transact-SQL).
Per ulteriori informazioni su come modificare un account di accesso con il linguaggio Transact-SQL, vedere ALTER LOGIN (Transact-SQL).
Per ulteriori informazioni sulla protezione dei database, vedere Considerazioni relative alla protezione per database e applicazioni per database. Questa pagina contiene inoltre collegamenti ad argomenti importanti.
Prima di procedere:
Prima di procedere, leggere i seguenti articoli MSDN:
È possibile creare un nuovo utente SQL utilizzando una finestra di dialogo o il linguaggio Transact-SQL. In questo articolo si illustra il metodo che utilizza la finestra di dialogo.
Per iniziare, passare al database che riceverà il nuovo utente. Fare clic con il pulsante destro del mouse sulla cartella Protezione e scegliere Nuovo. Viene visualizzato il sottomenu riprodotto nella figura 12.

Figura 12. Opzioni della finestra di dialogo Protezione
Per aprire la finestra di dialogo Utente database – Nuovo, scegliere Utente.
La scheda Generale di questa finestra di dialogo fornisce caselle di testo per immettere il nome utente e l'account di accesso. L'account di accesso serve ad autenticare l'utente. È inoltre possibile scegliere schemi e ruoli database per l'utente SQL nella scheda Generale . La scheda Entità a protezione diretta è identica alla finestra di dialogo Account di accesso SQL. La scheda Proprietà estese non fornisce funzionalità per la versione SQL Server Express di SQL Server Management Studio.
Tenere presente che non esiste una finestra di dialogo di stato. Per modificare lo stato di un utente, occorre aprire la finestra di dialogo Account di accesso. Per farlo, aprire la cartella Protezione, spostarsi all'utente e fare clic con il pulsante destro del mouse Proprietà.
La finestra di dialogo Account di accesso-Nuovo si trova nella cartella Protezione a livello di server. Per trovarla, espandere la cartella del nodo server in Esplora oggetti. Fare clic con il pulsante destro del mouse sulla cartella Protezione per aprire la finestra di dialogo Account di accesso-Nuovo. La finestra di dialogo Account di accesso-Nuovo fornisce informazioni di autenticazione di base. È possibile scegliere tra Autenticazione di Windows e Autenticazione di SQL Server. Per usare l'Autenticazione di Windows occorre che un utente Windows esista in un computer locale o in un dominio. È possibile scegliere l'Autenticazione di SQL Server per gli account di accesso SQL Server che non esistono come utenti di domino (vedere la figura 13).

Figura 13. Finestra di dialogo Account di accesso-Nuovo
Dopo aver fornito un nome utente, si applicano le impostazioni specifiche. Di seguito si esaminano alcune delle impostazioni più importanti di questa finestra di dialogo.
Scheda Ruoli del server
Consente di assegnare ruoli a livello di server a un account di accesso. Sono ruoli potenti che hanno effetto sull'accesso ad attività di amministrazione importanti.
Scheda Mapping utenti
Consente di impostare i mapping degli utenti, i quali forniscono le relazioni tra un account di accesso e gli utenti SQL corrispondenti. Scegliere i database di sistema solo se l'account di accesso deve accedere al database di sistema. Se si utilizza uno schema, scegliere lo schema. Scegliere i ruoli di database. Un account di accesso tipico ha i ruoli di database fissi db_datareader e db_datawriter .
Scheda Entità a protezione diretta
Consente di scegliere i privilegi dell'account di accesso. Per ulteriori informazioni, vedere Entità a protezione direttain MSDN.
Scheda Stato
Consente di attivare/disattivare l'account di accesso e l'utente SQL. Di seguito si elencano gli stati da regolare per un dato utente e account di accesso.
Concedi: concede un privilegio a un utente, ad esempio l'esecuzione di una query in un database. In genere, Concedi significa che l'account di accesso può connettersi al server.
Nega: revoca un privilegio. A un account di accesso non è consentito di connettersi al server anche se l'utente è membro di un gruppo di Windows che avrebbe normalmente accesso.
Attiva: l'account di accesso può connettersi al server.
Disattiva: l'account di accesso non può connettersi al server.
In questa sezione sono stati trattati i seguenti argomenti: creazione di utenti e account di accesso, esecuzione del mapping reciproco e concessione o negazione dell'accesso degli stessi al server e al database. La protezione consiste in molto di più. Si consiglia di impiegare il tempo necessario a comprendere appieno questo argomento.
Per ulteriori informazioni:
Per ulteriori informazioni sui ruoli e relative attività, vedere i seguenti articoli su MSDN.
L'obiettivo della preparazione alle situazioni di emergenza è riportare in linea il database dopo un errore. Esistono diversi tipi di condizioni che forzano la disconnessione di un database. Questa sezione descrive come prepararsi nel caso in cui la versione in esecuzione del database si interrompa o non sia in linea. In particolare, nella sezione si tratteranno i seguenti punti:
| • | Backup di un database |
| • | Ripristino di un database |
| • | Utilizzo di script per ricreare il database |
| • | Utilizzo di script per reimmettere i dati nel database |
La preparazione alle situazioni di emergenza è diversa a seconda se il database è ospitato localmente o da una società di Web hosting o di altri servizi.
Database locali
Il metodo più comune per essere preparati a qualsiasi situazione di emergenza consiste nel disporre di una copia di backup del database. I backup servono a tenere copie dei dati. Occorre preparare set completi di script per ricreare il database da zero nel caso il backup non riesca o il server debba essere ricreato. Nelle sezioni seguenti si tratteranno i meccanismi di backup e di creazione di copie dei database necessari a riportare il database online.
Database ospitati
I database ospitati presentano una serie unica di problemi e numerose incognite. Quando si sceglie un provider di hosting, si nota che molti si vantano dell'elevato grado di disponibilità. In realtà, non c'è modo di sapere se effettueranno il backup del database con regolarità. Si consiglia di richiedere direttamente le versioni script del database, generalmente tramite un sistema di trouble ticketing.
I modi per effettuare un backup di un database locale sono tre:
| • | Utilizzando la finestra di dialogo Backup. |
| • | Utilizzando un modello di backup. |
| • | Scollegando il database e copiando i file dalla cartella di dati a un'altra posizione. |
Nelle sezioni seguenti si esamina la finestra di dialogo Backup database.
Per aprire la finestra di dialogo Backup database, fare clic con il pulsante destro del mouse su un database in Esplora oggetti, puntare su Attività e scegliere Backup. Nella figura 14 si illustrano le impostazioni di base per il backup di un database.
Nella finestra di dialogo Backup database sono visualizzate due schede. Innanzitutto, la scheda Generale .
Tutti i database presenti sul server sono elencati nell'elenco a discesa. Scegliere il database.
Per il tipo di backup ci sono due scelte. Se questo è il primo backup del database, eseguire un backup COMPLETO per creare un backup completo di tutti i dati. La seconda scelta, backup differenziale, crea un backup incrementale dei dati. È una scelta utile per database molto grandi, dove i file di backup sono distribuiti su più unità.
Si noterà che c'è una finestra di destinazione, contenente alcuni elementi. Per impostazione predefinita, in SQL Server viene utilizzata come destinazione una cartella di backup nella posizione predefinita di installazione di SQL Server. È inoltre possibile utilizzare un supporto di backup, che costituisce l'archivio per i backup.
Si esamineranno ora le modalità di utilizzo dei supporti di backup.
La scheda Opzioni, in figura 14, fornisce un meccanismo di gestione dei file di backup. Per SQL Server Express, dal momento che le dimensioni del database sono limitate, si raccomanda l'utilizzo dell'opzione Accoda al set di backup esistente . Se si preferisce avere solo un set di backup e non si desidera tenere i backup precedenti, l'opzione più appropriata è Sovrascrivi tutti i set di backup esistenti . Nel gruppo di opzioni Affidabilità, selezionare entrambe le funzionalità di affidabilità (verify e checksum): si eviterà in tal modo l'eventualità non riuscire a eseguire un ripristino perché il backup è danneggiato.

Figura 14. Scheda Opzioni nella finestra di dialogo Backup database
Una periferica di backup è una posizione di archiviazione predefinita per i backup. Per molte organizzazioni il dispositivo consiste in un'unità nastro rimovibile che effettua il backup automatico dei dati. Un altro metodo consiste nell'utilizzo di una periferica di backup. Un altro approccio è l'utilizzo di un'unità esterna o di un'altra unità interna come periferica di backup. Un sistema disco di backup separato dal server costituisce un modo facile di trasportare il database da un server (o sede) a un altro.
Per creare una periferica di backup, espandere la cartella Oggetti server in Esplora oggetti e fare clic con il pulsante destro del mouse sulla cartella Periferiche di backup. Scegliere Nuova periferica di backup e fornire il nome e il percorso file della periferica. Da questo momento, quando si creano backup è possibile utilizzare la periferica di backup: SQL Server gestirà i file di backup. Senza una periferica di backup occorrerà gestire manualmente i backup. Si tratta di un metodo adatto quando è importante aggiornare le cronologie dei backup.
SQL Server 2005 Express Edition non contiene funzionalità per effettuare il backup dei database con regolarità o automaticamente. I dati e i file di registro, inoltre, non possono essere copiati mentre vengono utilizzati da SQL Server. Il backup ordinario dei file non funziona sui file di database che non sono chiusi. È, tuttavia, possibile utilizzare il sistema operativo per effettuare backup automatici. Il sistema operativo Windows ha un programma denominato Utilità di pianificazione. È possibile impostarla per eseguire con regolarità attività programmate di backup di un database.
Su SQLDBATips.com si trova un buon articolo su come automatizzare il backup del database. L'articolo (in inglese) può essere visualizzato dal seguente collegamento:
< http://www.sqldbatips.com/showarticle.asp?ID=27>
I requisiti di base per l'automazione dei backup sono i seguenti:
| • | Creare uno script Transact-SQL. |
| • | Utilizzare SQLCMD per eseguire lo script passando lo script a SQLCMD. |
| • | Creare un'operazione pianificata in Windows. Per aprire Utilità di pianificazione, aprire il menu Start e scegliere Programmi, quindi scegliere Accessori,, Utilità di sistema e, Operazioni pianificate.. |
Un'altra strategia per automatizzare i backup è quella di utilizzare la finestra di dialogo Backup in SQL Server 2005 Express Edition per impostare le opzioni, quindi generare lo script per il comando di backup in un file senza eseguirlo direttamente nella finestra di dialogo. Gli utenti potranno utilizzare SQLCMD per eseguire lo script in un'attività di Operazioni pianificate.
Se si conosce il funzionamento della copia shadow, è possibile eseguire il backup della directory di SQL Server sul file system e ottenere lo stesso risultato. La differenza principale tra copiare i file ed effettuare il backup è costituita dalla replica transazionale.
Per ripristinare un database, aprire il menu Attività, scegliere Ripristina,quindi database. Viene visualizzata la finestra di dialogo Ripristina, che contiene due riquadri: Generale e Opzioni. Nel riquadro Generale immettere la destinazione e l'origine dell'operazione di ripristino.

Figura 15. Finestra di dialogo Ripristino database
Nella scheda relativa alle opzioni di ripristino del database, è possibile impostare le opzioni per:
| • | Sovrascrivere il database esistente. |
| • | Mantenere le impostazioni di replica. |
| • | Richiedere conferma prima di archiviare i singoli backup (si applica solo a operazioni di ripristino di più backup). |
| • | Limitare l'accesso al database dopo il ripristino. |
I tre stati di ripristino che influiscono sull'uso del database al completamento dell'operazione di ripristino sono elencati di seguito:
| • | Restore with Recovery. Il database è pronto per l'uso (l'impostazione predefinita). |
| • | Restore with No Recovery. Il database non è pronto. |
| • | Restore with Stand-by. Il database è in condizione di sola lettura. |
Di solito si lasciano selezionate le impostazioni predefinite.
Nelle seguenti sezioni verranno descritte alcune importanti funzioni necessarie alle attività di qualsiasi amministratore di database. Verrà descritto come accedere alle impostazioni di database utilizzando le proprietà del server, le viste del catalogo di database e le viste a gestione dinamica (DMV). Verrà presentata anche la connessione dedicata per amministratori, ossia una connessione speciale per gestire un server fuori controllo che è necessario ristabilizzare. Infine, verrà illustrato Monitor attività e alcune funzioni avanzate di SQL Server Express.
Spesso gli utenti vogliono configurare SQL Server Express per utilizzare un certo numero di risorse del computer. Per farlo, in Esplora oggetti, fare clic con il pulsante destro del mouse su un server per aprire la finestra Proprietà server. Le impostazioni che vengono modificate più comunemente sono le opzioni di memoria server. Per personalizzare la quantità di memoria utilizzata da SQL Server Express, scegliere la pagina Memoria e personalizzare la memoria minima utilizzata o impostare un valore inferiore per la memoria massima.
SQL Server ha quattro database di sistema, che forniscono un'infrastruttura unica a SQL Server. Sono importanti e devono essere inclusi in qualsiasi piano di ripristino di emergenza. Occorrerà effettuare il backup del database master prima di ogni modifica all'infrastruttura del database.
Master. Registra tutte le informazioni a livello di sistema per un'istanza di SQL Server.
Model. Utilizzato da SQL Server Agent per la programmazione di avvisi e processi.
MSDB. Utilizzato come modello per tutti i database creati sull'istanza di SQL Server. Modifiche apportate al database model, come dimensioni del database, regole di confronto, modello di recupero e altre opzioni del database.
Temp. Un'area di lavoro contenente oggetti temporanei o un set di risultati intermedi.
Database Resource. Un database a sola lettura, contenente oggetti di sistema che sono inclusi in SQL Server 2005. Gli oggetti di sistema sono salvati in modo permanente nel database Resource, ma sono visualizzati logicamente nello schema sys di ogni database. Questo database è nascosto.
Per ulteriori informazioni:
Per ulteriori informazioni sui database di sistema, vedere Database di sistema in MSDN.
Per ulteriori informazioni sul backup e il recupero dei database di sistema, vedere Backup e ripristino di database di sistema..
Per aumentare le prestazioni, è possibile rimuovere allocazioni di spazio non utilizzate dal disco di sistema. Esistono due tipi di compattazione. Compattazione del database riduce lo spazio riempito per il database. Compattazione dei file limita lo spazio assegnato al database.
Per compattare un database o un file, puntare il database nella cartella Database di Esplora oggetti e fare clic con il pulsante destro del mouse su Attività. Scegliere Compatta. Scegliere il database oppure i file.
Verrà visualizzata la finestra di dialogo Compatta database o Compatta file. La finestra di dialogo Compatta database è facile da capire. La finestra di dialogo Compatta file, riprodotta nella figura 16, è molto più complessa.

Figura 16. Finestra di dialogo Compatta file
Come si vede nella figura 16, nel database è disponibile una notevole quantità di spazio libero, il 37%. SQL Server mantiene spazio sulle unità per l'archiviazione dei dati. Se non è necessario mantenere spazio su disco, è possibile compattare i file per liberare spazio.
L'impostazione più importante di questa finestra di dialogo è il gruppo di opzioni Azione di compattazione . Delle tre scelte, Rilascia spazio inutilizzato è la più semplice e viene utilizzata la maggior parte delle volte. L'opzione Riorganizza le pagine prima di rilasciare lo spazio inutilizzato consente a SQL Server di riorganizzare il layout dei dati per raggiungere determinate dimensioni. Specificare la dimensione nell'impostazione Dimensioni file compattato . Dal momento che non è possibile compattare il database a una dimensione inferiore di quella fisica, se la dimensione corrente del database è 3 MB, la dimensione minima è 3 MB. L'ultima opzione, Svuota il file eseguendo la migrazione dei dati in altri file nello stesso filegroup, permette di ripartire il carico di lavoro dei dati.
La possibilità di collegare e scollegare un database è utile quando si sposta un database da un server a un altro. Dopo avere scollegato il database è possibile copiare i file MDF in un'altra posizione ed eseguire il collegamento del database. Il collegamento funziona secondo modalità differenti rispetto al ripristino o al backup del database poiché fornisce uno strumento semplice per lo spostamento del database da un computer all'altro.
Per trasportare un database utilizzando la funzionalità di backup e ripristino, si dovrebbe creare una versione vuota del database sulla destinazione, quindi ripristinare il backup nel database vuoto. Il backup attraverso la rete potrebbe non riuscire. Anche se a prima vista sembra più logico utilizzare un'operazione di backup, il processo di scollegamento, copia e collegamento è, di fatto, più veloce. Nella figura 17 viene mostrata la procedura di scollegamento.

Figura 17. Scollegamento dalle Attività
Per proteggere meglio i database di SQL Server i cataloghi di sistema sono stati bloccati e non possono essere modificati. Non sono, inoltre, visibili a tutti. In SQL Server sono fornite una serie di viste SQL con informazioni sul catalogo di sistema. Queste viste sono a sola lettura e sono state progettate per visualizzare i metadati.
Per effettuare una query su una vista del catalogo, cercare la funzione di sistema appropriata ed eseguire la query con i filtri di istruzione SELECT. Le convenzioni per denominare le viste del catalogo sono intuitive. È possibile effettuare query sul database master e su tutti i database utente.
Il codice seguente illustra un esempio di esecuzione di una query a livello di database alla ricerca di entità.
Select type_desc,name,default_schema_name from sys.database_principals
where type_desc like 'sql_user'
Per ulteriori informazioni:
Per ulteriori informazioni sulle viste del catalogo di database, vedere Viste del catalogo (Transact-SQL) in MSDN.
SQL Server 2005 fornisce più di 80 nuove viste a gestione dinamica. Queste viste costituiscono una topologia completamente nuova per risolvere i problemi dei database di SQL Server. Si suddividono in gruppi, a partire dal livello di server fino a livello di database. Vengono fornite viste speciali per il controllo degli assembly .NET, della protezione e altre ancora. Le viste a gestione dinamica non includono solo i dati correnti, ma anche i dati cronologici aggregati.
SQL Server 2005 attiva una traccia predefinita, che consente di scoprire che cosa è accaduto quando si verifica un errore. È molto simile alla traccia eventi. Le viste a gestione dinamica utilizzano la traccia predefinita. L'aspetto interessante delle viste a gestione dinamica è il fatto che gli amministratori possono vedere la traccia predefinita dopo un'operazione non consentita e non programmata e capire che cosa è accaduto. Al primo accesso a SQL Server, inoltre, dai dati cronologici vengono creati i report di riepilogo nella finestra principale.
Le viste a gestione dinamica sono viste di database e si trovano nella cartella Viste nella cartella Database di sistema di ogni utente. Il prefisso per le viste è dm_.) Le viste a gestione dinamica sono organizzate in cinque categorie generali. Le categorie si basano, a loro volta, sui fattori ambientali di cui eseguono il report.
| • | Le viste a gestione dinamica denominate dm_exec_* forniscono informazioni sull'esecuzione dei moduli utente e delle connessioni. |
| • | Le viste a gestione dinamica il cui nome adotta la convenzione dm_os_* eseguono i report sulla memoria, sui blocchi e sulla pianificazione dell'esecuzione. |
| • | Le viste a gestione dinamica il cui nome adotta la convenzione dm_trans_* forniscono informazioni sulle transazioni e l'isolamento. |
| • | Le viste a gestione dinamica il cui nome adotta la convenzione dm_io_* forniscono informazioni sul monitoraggio di input/output sul disco. |
Un amministratore di database dimostrerebbe negligenza se non comprendesse le viste a gestione dinamica. Quando il server si impunta e si blocca, è possibile combinare le viste a gestione dinamica con un'altra funzionalità nuova: la connessione amministrativa dedicata (DAC). La connessione amministrativa dedicata e le viste a gestione dinamica consentiranno di trovare il processo danneggiato e interromperlo senza riavviare il server.
Per ulteriori informazioni:
Per ulteriori informazioni sulle viste a gestione dinamica, vedere Funzioni e viste a gestione dinamica in MSDN.
La connessione amministrativa dedicata è una connessione speciale che può essere utilizzata per accedere a SQL Server quando nessuna delle altre connessioni riesce. È consentita solo una connessione amministrativa dedicata su un'istanza server. Non utilizzare la connessione amministrativa dedicata per connessioni generali al database.
In SQL Server Express, è possibile accedere alla connessione amministrativa dedicata solo utilizzando SQLCMD.
Per utilizzare la connessione amministrativa dedicata
1. | Utilizzare SQLCMD per connettersi al database. Il comando SQLCMD –A fornisce la connessione alla riga di comando. |
2. | Per attivare la connessione amministrativa dedicata, attivare il flag di traccia 7806. Procedere come segue: eseguire i seguenti comandi di Transact-SQL dalla finestra dell'editor di query oppure eseguire la stessa query utilizzando SQLCMD. USE Master DBCC TRACEON (7806) GO |
Se il server SQL Server Express non risponde
1. | Per utilizzare SQLCMD per accedere al server, eseguire il seguente comando: C:\ SQLCMD –Sadmin:<instancename> - D master |
2. | Dopo aver stabilito la connessione, eseguire la seguente vista a gestione dinamica per trovare le sessioni correnti: select * from sys.dm_exec_sessions |
È possibile eseguire una versione più raffinata della query precedente per scoprire quali sessioni richiedono tempi lunghi o sono bloccate. Di seguito viene fornito un codice di esempio.
Select session_id, total_elapsed_time,memory_usage,status
from sys.dm_exec_sessions
Dopo aver stabilito qual è il processo danneggiato, è possibile terminarlo utilizzando il comando Kill in Transact-SQL.
Kill (process id)
Esempio:
Kill(54)
Per ulteriori informazioni:
Per ulteriori informazioni sul comando Kill, vedere KILL (Transact-SQL) in MSDN.
La finestra corrente di Monitor attività in SQL Server 2005 Management Studio Express Edition visualizza informazioni in forma grafica su:
| • | Connessioni utente correnti e blocchi. |
| • | Numero di processi, stato, blocchi e comandi eseguiti dagli utenti attivi. |
| • | Oggetti bloccati e tipi di blocchi presenti. |
L'amministratore di sistema è in grado di vedere informazioni aggiuntive sul processo selezionato o terminarlo. La finestra Attività corrente viene limitata a livello di database.
È possibile collegare due server di database che sono separati fisicamente. Ciò consente di condividere i dati o eseguire un'azione su uno dei server in base all'azione di un altro server.
Il collegamento tra i server fornisce un meccanismo per lavorare su più server di database in modo protetto. Utilizzare la finestra di dialogo Server collegati per impostare i mapping utente e account di accesso tra due server e per connettere una origine dati esterna a SQL Server. Per esempio, è possibile collegarsi a un database Microsoft Access.
Uno degli impieghi principali dei server collegati è quello di importare i dati in SQL Server Express. Dopo che è stata creata una configurazione server collegato, gli utenti possono eseguire query per copiare i dati nel database di SQL Server.
Per ulteriori informazioni:
Per una panoramica sui server collegati, vedere Server collegati in MSDN.
SQL Server 2005 Express Edition ha funzionalità di replica limitate. Un database di SQL Server Express può essere solo sottoscrittore di una pubblicazione di SQL Server 2005 Workgroup Edition, SQL Server 2005 Standard Edition o SQL Server 2005 Enterprise Edition. È possibile utilizzare la finestra di dialogo Replication Subscription per impostare le relazioni. Dal momento che il supporto alla replica SQL Server non è installato per impostazione predefinita, occorre eseguire il programma di installazione e scegliere Replica nella finestra di dialogo Opzioni avanzate.
Per ulteriori informazioni:
Per una panoramica della replica, vedere Implementazione della replica in MSDN.
Per ulteriori informazioni sulla replica dei dati con SQL Server Express, vedere Replica di dati in SQL Server Express.
In questo articolo sono strati trattati gli argomenti di base relativi a SQL Server 2005 Management Studio Express Edition. Sono state prese in esame la creazione di oggetti di base e le attività amministrative. Inoltre, sono state offerte informazioni sulla protezione e la preparazione alle situazioni di emergenza. Con questo bagaglio di conoscenze, l'amministratore sarà in grado di gestire SQL Server Express.
Per ulteriori informazioni:
http://www.microsoft.com/italy/technet/prodtechnol/sql/default.mspx
Panoramica di SQL Server Express:
Protezione in SQL Server Express:
Incorporamento di SQL Server Express nelle applicazioni personalizzate:
Istanze utente di SQL Server Express:
Sviluppo Web con Microsoft Visual Web Developer 2005 Express Edition e SQL Server 2005 Express Edition, Parte 1
Forum MSDN per SQL Server Management Studio (in inglese):
http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=84&SiteID=1
Blog del team di SQL Server Express:
http://blogs.msdn.com/sqlexpress/default.aspx