capitolo di esempio - Mondadori Informatica

Book625891.book Page 52 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete,
accesso e protezione della superficie
di attacco
In questo capitolo:
Gestione dell’accesso alle funzionalità dei componenti SQL Server . . . . . . . . . . . .53
Configurazione dei servizi di SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Gestione della configurazione di rete e di SQL Native Client . . . . . . . . . . . . . . . . .68
Per controllare l’accesso al proprio server poche cose sono più importanti della configurazione
di servizi, componenti e funzionalità di rete di Microsoft SQL Server. Ogni installazione SQL
Server ha una configurazione specifica per servizi, componenti e rete, inoltre è tramite la
configurazione che vengono stabiliti i livelli di protezione che controllano l’accesso alla
superficie di attacco del server, ad esempio
■ Chi può accedere al server e tramite cosa
■
Quali servizi SQL Server vengono eseguiti automaticamente all’avvio e quali manualmente
in base alle necessità
■
Dove e tramite cosa i componenti SQL Server sono in grado di connettersi (o essere
connessi) alle risorse remote
Limitando tutti questi aspetti della configurazione del server è possibile ridurre la superficie di
attacco, migliorando così la protezione del server e le prestazioni generali, in quanto vengono
eseguiti solo i servizi e i componenti necessari.
L’accesso dei client a SQL Server viene gestito tramite i parametri di Configurazione SQL Native
Client. L’accesso di SQL Server alle risorse locali e remote viene gestito tramite Servizi di SQL
Server e Configurazione di rete SQL Server. Per gestire l’accesso dei client, i servizi SQL Server
e la configurazione di rete è possibile utilizzare Gestione configurazione SQL Server.
52
Book625891.book Page 53 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
53
Gestione dell’accesso alle funzionalità dei componenti
SQL Server
Per limitare la superficie di attacco del server e migliorarne la protezione, è necessario attivare
solo le funzionalità necessarie a client e applicazioni. In questo modo si limitano i modi in cui
il server può essere attaccato da utenti malintenzionati e si chiudono le vie per potenziali
attacchi. Nella tabella 3-1 vengono illustrate le funzionalità relative alla superficie di attacco che
si possono gestire per Motore di database di SQL Server e i servizi Analysis Services e Reporting
Services. In SQL Server 2008 queste funzionalità della superficie di attacco vengono gestite
utilizzando i criteri della Gestione basata sui criteri, come illustrato nel capitolo 18,
“Implementazione della Gestione basata sui criteri”. Queste funzionalità sono disattivate per
impostazione predefinita.
Tabella 3-1
Funzionalità dei componenti per la gestione dell’accesso alla superficie di
attacco
Componente/Facet
Descrizione/Utilizzo
Motore di database
AdHocRemoteQueries
Enabled
Le funzioni OPENROWSET e OPENDATASOURCE possono utilizzare
connessioni ad hoc per funzionare con origini dati remote senza un
amministratore che configura nello specifico server collegati o remoti.
Se le applicazioni o gli script utilizzano queste funzioni, è necessario
attivare il supporto per OPENROWSET e OPENDATASOURCE.
Altrimenti, disattivare questa funzionalità.
ClrIntegrationEnabled
Grazie all’integrazione con Common Language Runtime (CLR) è
possibile scrivere stored procedure, trigger, tipi definiti dall’utente e
funzioni definite dall’utente utilizzando Microsoft Visual Basic .NET, C#
e ogni altro linguaggio .NET Framework. Se le applicazioni o gli script
utilizzano un linguaggio .NET Framework, attivare questa funzionalità.
Altrimenti, disattivarla.
DatabaseMailEnabled
Posta elettronica database sostituisce SQL Mail come tecnica preferita
per l’invio di messaggi di posta da SQL Server utilizzando il protocollo
Simple Mail Transfer Protocol (SMTP). Attivare questa funzionalità se
sono stati creati un database host di posta elettronica (eseguendo lo
script %ProgramFiles%\Microsoft SQL Server\MSSQL.1\MSSQL\Install\
Install_DBMail_Upgrade.sql sul server) e i profili di posta elettronica
database necessari, e se si desidera che le applicazioni e gli script siano
in grado di utilizzare la stored procedure sp_send_dbmail per inviare
messaggi di posta da SQL Server. Altrimenti, disattivare questa
funzione.
Book625891.book Page 54 Tuesday, March 24, 2009 1:46 PM
54
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Tabella 3-1 Funzionalità dei componenti per la gestione dell’accesso alla superficie di
attacco (continua)
Componente/Facet
Descrizione/Utilizzo
RemoteDacEnabled
Utilizzando l’utilità della riga di commando SQLCMD con il parametro –
A, gli amministratori possono mantenere le installazioni SQL Server
utilizzando una connessione dedicata dalla riga di comando, sia in
locale che in remoto. Per impostazione predefinita sono consentite solo
le connessioni dedicate locali. Se si desidera autorizzare connessioni
dedicate remote, attivare questa funzionalità. Altrimenti, disattivarla.
SoapEndpointsEnabled
Con Servizi Web nativi è possibile accedere a SQL Server tramite HTTP
utilizzando la messaggistica Simple Object Access Protocol (SOAP). I
messaggi SOAP contengono comandi basati su testo formattati con
XML. Se si prevede di utilizzare SOAP per lo scambio di dati e sono stati
configurati gli endpoint HTTP necessari, è possibile configurare lo stato
di ogni endpoint come avviato, arrestato o disabilitato. Notare che i
componenti SQL Server Reporting Services, SQL Server Service Broker e
Mirroring dei database utilizzano Servizi Web nativi, ma hanno
configurazioni separate.
OleAutomationEnabled
Automazione OLE consente di utilizzare i batch Transact-SQL, le stored
procedure e i trigger per fare riferimento a SQL DMO e agli oggetti
personalizzati Automazione OLE. Attivare questa funzionalità se si
desidera utilizzare Automazione OLE, incluse le stored procedure estese
sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty,
sp_OAMethod, sp_OASetProperty e sp_OAStop. Altrimenti, disattivarla.
ServiceBrokerEndpoint
Active
Service Broker consente l’accodamento e la messaggistica per Motore
di database. Le applicazioni possono utilizzare Service Broker per
comunicare attraverso le interfacce di SQL Server. Se si prevede di
utilizzare Service Broker nelle applicazioni e sono stati configurati gli
endpoint HTTP necessari, è possibile configurare lo stato di ogni
endpoint come avviato, arrestato o disabilitato.
SqlMailEnabled
SQL Mail può essere utilizzato con le applicazioni legacy per l’invio di
messaggi di posta elettronica da SQL Server utilizzando SMTP. Attivare
questa funzionalità se si desidera che le applicazioni legacy e gli script
siano in grado di utilizzare la stored procedure xp_sendmail per l’invio
di messaggi di posta da SQL Server. Altrimenti, disattivarla.
XPCmdShellEnabled
xp_cmdshell esegue le stringe di comando utilizzando la shell dei
comandi del sistema operativo e restituisce i risultati sotto forma di
righe di testo. Se si desidera che le applicazioni e gli script eseguano i
comandi del sistema operativo è necessario attivare questa funzionalità.
Per impostazione predefinita, solo i membri del ruolo server predefinito
sysadmin possono eseguire xp_cmdshell. È possibile concedere
l’autorizzazione per l’esecuzione ad altri utenti. Per gli utenti sysadmin,
xp_cmdshell viene eseguito in un contesto di protezione in cui è in
esecuzione il servizio SQL Server. Per gli atri utenti, xp_cmdshell
impersonerà l’account proxy della shell dei comandi (come specificato
utilizzando xp_cmdshell_proxy_account). Se l’account proxy non è
disponibile, xp_cmdshell non funzionerà.
Book625891.book Page 55 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Tabella 3-1
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
55
Funzionalità dei componenti per la gestione dell’accesso alla superficie di
attacco (continua)
Componente/Facet
Descrizione/Utilizzo
WebAssistantEnabled
Nelle versioni precedenti di SQL Server, Pubblicazione guidata sul Web
archiviava procedure che potevano essere utilizzate per generare file
HMTL dai dati SQL Server. In SQL Server 2005 e SQL Server 2008,
Reporting Services sostituisce queste stored procedure, in quanto
questa funzionalità è più affidabile e offre maggiori opzioni di
configurazione. In caso di applicazioni legacy o script che utilizzano
Pubblicazione guidata sul Web, attivare questa funzionalità. Altrimenti,
disattivarla.
Analysis Services
AdHocDataMining
QueriesEnabled
La funzione OPENROWSET Data Mining Extensions stabilisce una
connessione a un oggetto origine dati utilizzando un nome di provider
e una stringa di connessione. Ciò consente connessioni ad hoc verso
origini dati remote senza che un amministratore configuri nello
specifico server collegati o remoti. Attivare questa funzionalità se le
applicazioni o gli script utilizzando OPENROWSET con Data Mining. In
caso contrario, disattivare questa funzionalità per evitare che
applicazioni e script passino un nome di provider e una stringa di
connessione quando si utilizza la funzione OPENROWSET.
AnonymousConnections Con le connessioni anonime, gli utenti non autenticati possono stabilire
Enabled
connessioni con Analysis Services. Attivare questa funzionalità se le
applicazioni e gli script richiedono l’accesso di utenti non autenticati.
Altrimenti, disattivarla.
LinkedObjectsLinksFrom Con Analysis Services, si possono utilizzare oggetti collegati per
OtherInstancesEnabled collegare dimensioni e gruppi di misure tra server. Se si desidera che
questa istanza venga collegata ad altri server, attivare la funzionalità.
Altrimenti, disattivarla.
LinkedObjectsLinksTo
OtherInstancesEnabled
Con Analysis Services, si possono utilizzare oggetti collegati per
collegare dimensioni e gruppi di misure tra server. Se si desidera che
Analysis Server si colleghi ad altri server, selezionare Attiva collegamenti
ad altre istanze. Altrimenti, disattivarla.
ListenOnlyOnLocal
Connections
Analysis Services può funzionare sia con risorse remote che locali.
Quando Analysis Services funziona con le risorse remote, ascolta le
connessioni TCP/IP sia sulle istanze server locali che remote,
consentendo connessioni da computer remoti. Quando Analysis
Services può funzionare solo con le risorse remote, apre una porta
TCP/IP sul server, ma ascolta solo le connessioni delle istanze server
locali. Se si desidera che Analysis Services funzioni solo con le risorse
locali, attivare questa funzionalità. Altrimenti, disattivarla.
Book625891.book Page 56 Tuesday, March 24, 2009 1:46 PM
56
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Tabella 3-1 Funzionalità dei componenti per la gestione dell’accesso alla superficie di
attacco (continua)
Componente/Facet
Descrizione/Utilizzo
UserDefinedFunctions
Enabled
Analysis Services è integrato con .NET Framework e può caricare
assembly contenenti funzioni definite dall’utente. Tali funzioni possono
essere scritte utilizzando CLR o gli oggetti COM (component object
model). Gli oggetti CLR e le funzioni hanno un modello di protezione
integrato. Gli oggetti COM non utilizzano questo modello, quindi sono
meno sicuri. Attivare questa funzionalità se le applicazioni e gli script
richiedono funzioni COM definite dagli utenti. Altrimenti, disattivarla
per consentire solo funzioni CLR.
Reporting Services
ScheduledEventsAnd
ReportDeliveryEnabled
Con Reporting Services si possono utilizzare report ad hoc, su richiesta
e pianificati. In genere, quando si installa Reporting Services, sono
attivati tutti i tipi di report. Se non si utilizzano report pianificati è
possibile disabilitarne la generazione e la consegna disattivando questa
funzionalità.
WebServiceRequests
I componenti di Reporting Services utilizzano la messagistica SOAP
AndHTTPAccessEnabled tramite HTTP per le comunicazioni e HTTP per le richieste di accesso
URL. Queste funzionalità vengono gestite tramite il servizio Web Report
Server e consentono di utilizzare Reporting Services tramite Gestione
report, Progettazione report e SQL Server Management Studio. In
genere, se è installato Reporting Services, il server gestirà le richieste
HTTP e del servizio Web. Attivare questa funzionalità se le applicazioni
client utilizzano il servizio Web Server report o se si utilizza Gestione
report, Progettazione report o SQL Server Management Studio con
questa installazione di Reporting Services. Altrimenti, disattivarla.
ReportManagerEnabled Gestione report è un’applicazione basata sul Web per la visualizzazione
dei report, la gestione del contenuto del server report e per il controllo
dell’accesso ai server report eseguiti in modalità nativa. Attivare questa
funzionalità se si utilizza Gestione report con questa installazione del
servizio Reporting Services. Altrimenti, disattivarla.
Configurazione dei servizi di SQL Server
Gestione configurazione SQL Server viene implementato in una console personalizzata
Microsoft Management Console, inoltre è disponibile come snap-in da aggiungere alle console
personalizzate. Può essere avviato utilizzando uno dei seguenti modi:
■ Accedere al server di database attraverso un accesso locale o remoto, quindi avviare
Gestione configurazione SQL Server facendo clic sul pulsante Start, Tutti i programmi,
Microsoft SQL Server 2008, Strumenti di configurazione, Gestione configurazione SQL
Server. Questo strumento può essere avviato anche facendo clic su Start, digitando
sqlservermanager10.msc nella casella Esegui e premendo Invio.
Book625891.book Page 57 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
■
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
57
In SQL Server Management Studio, aprire Server registrati premendo Ctrl+Alt+G.
Utilizzare la relativa barra degli strumenti per selezionare il gruppo di livello superiore,
quindi espandere i nodi del gruppo facendo doppio clic su ognuno. Fare clic con il
pulsante destro del mouse sulla voce del server, quindi selezionare Gestione
configurazione SQL Server.
Quando viene avviato Gestione configurazione SQL Server, verrà visualizzata la finestra
principale illustrata nella figura 3-1. Questo strumento può essere utilizzato per eseguire molte
attività principali:
■ Gestire la configurazione dei servizi delle istanze SQL Server correlate
■
Gestire la configurazione delle connessioni delle istanze SQL Server correlate
■
Gestire la configurazione di SQL Native Client sul computer in cui viene eseguito SQL
Server
Nota Sui computer a 64 bit sono presenti più nodi per la gestione delle impostazioni di
configurazione di client e rete. I nodi con il suffisso (32 bit) vengono utilizzati per gestire le
impostazioni a 32 bit, mentre gli altri nodi per gestire quelle a 64 bit.
Figura 3-1
Finestra principale di Gestione configurazione SQL Server
Gestione della configurazione dei servizi
Gestione configurazione SQL Server può essere utilizzato per visualizzare e gestire lo stato di
avvio dei servizi di SQL Server. Dopo averlo avviato, fare clic sul nodo Servizi di SQL Server per
visualizzare i servizi principali configurati per tutte le istanze di SQL Server 2008 in esecuzione
sul computer a cui si è attualmente connessi. I servizi disponibili dipendono dai componenti
installati. Considerare quanto segue:
■
Active Directory Helper. Eseguito come il servizio SQL Server Active Directory Helper. Il
file eseguibile di questo servizio è Sqladhlp.exe, specificato con la riga di comando di avvio
del servizio, ad esempio:
"C:\Program Files\Microsoft SQL Server\100\Shared\sqladhlp.exe"
Non può essere configurato in Gestione configurazione SQL Server. Utilizzare invece
l’utilità Servizi.
Book625891.book Page 58 Tuesday, March 24, 2009 1:46 PM
58
■
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Analysis Services. Eseguito come il servizio SQL Server Analysis Services (InstanceName).
Il file eseguibile di questo servizio è Msmdsrv.exe e viene eseguito come specifico file di
inizializzazione specificato nella riga di comando di avvio, ad esempio:
"C:\Program Files\Microsoft SQL Server\100\Shared\sqladhlp.exe"
msmdsrv.exe" -s "C:\Program Files\Microsoft SQL Server\
MSAS10.CUSTDATAW\OLAP\Config"
Il file di inizializzazione (Msmdsrv.ini) viene definito utilizzando XML e non deve essere
modificato direttamente.
■
Motore di database. Eseguito come il servizio SQL Server (InstanceName). Il file
eseguibile di questo servizio è Sqlservr.exe e viene eseguito con un’istanza specificata nella
riga di comando di avvio, ad esempio (per l’istanza predefinita, MSSQLSERVER):
"C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\
Binn\sqlservr.exe" –s MSSQLSERVER
Nota Benché alcuni componenti, ad esempio Motore di database, possano essere avviati
direttamente dalla riga di comando, i servizi in genere vengono avviati con lo strumento
appropriato oppure con NET START. Se si avvia manualmente Motore di database, è
possibile impostare specifici parametri di avvio, come illustrato nel capitolo 4,
“Configurazione e ottimizzazione di Microsoft SQL Server 2008.”
I parametri di avvio possono essere configurati anche utilizzando Gestione configurazione
SQL Server. Fare doppio clic sul servizio SQL Server per l’istanza che si desidera utilizzare.
Nella finestra di dialogo Proprietà, nella scheda Accesso, fare clic su Interrompi per
arrestare il servizio. Nella scheda Avanzate, inserire i parametri di avvio nel campo
Parametri di avvio. Infine, nella scheda Accesso, fare clic su Avvia per avviare il servizio.
■
Integration Services. Eseguito come il servizio SQL Server Integration Services. Il file
eseguibile di questo servizio è Msdtssrvr.exe, specificato con la riga di comando di avvio
del servizio, ad esempio:
"C:\Program Files\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.exe"
■
Reporting Services. Eseguito come il servizio SQL Server (InstanceName). Il file
eseguibile di questo servizio è ReportingServicesService.exe, specificato con la riga di
comando di avvio del servizio, ad esempio:
"C:\Program Files\Microsoft SQL Server\MSRS10.CUSTDATAW\
Reporting Services\ReportServer\bin\ReportingServicesService.exe"
■
SQL Server Agent. Eseguito come il servizio SQL Server Agent (InstanceName). Il file
eseguibile di questo servizio è Sqlagent.exe e viene eseguito come specifico file di
inizializzazione specificato nella riga di comando di avvio, ad esempio:
"C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\
Binn\SQLAGENT.EXE" -i MSSQLSERVER
Book625891.book Page 59 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
■
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
59
SQL Server Browser. Eseguito come il servizio SQL Server Browser. Il file eseguibile di
questo servizio è Sqlbrowser.exe, specificato con la riga di comando di avvio del servizio,
ad esempio:
"C:\Program Files\Microsoft SQL Server\100\Shared\sqlbrowser.exe"
■
Writer SQL. Eseguito come il servizio writer VSS di SQL Server. Il file eseguibile di questo
servizio è Sqlwriter.exe, specificato con la riga di comando di avvio del servizio, ad
esempio:
"C:\Program Files\Microsoft SQL Server\100\Shared\sqlwriter.exe"
Non può essere configurato in Gestione configurazione SQL Server. Utilizzare invece
l’utilità Servizi.
Dopo aver selezionato il nodo Servizi di SQL Server, verrà visualizzata una voce dettagliata per
ogni servizio che include quanto segue.
■
Nome. Il nome comune del servizio visualizzato sull’interfaccia utente.
■
Stato. Lo stato dei servizi in base all’ultimo aggiornamento, ad esempio In esecuzione o
Interrotto.
■
Modalità di avvio. Lo stato di avvio del servizio: Automatico, Manuale o Disabilitato.
■
Accedi come. L’account utente con cui è stato avviato il servizio. Nei servizi in esecuzione
con gli account di sistema si noterà il nome dell’account di sistema utilizzato, ad esempio
NT AUTHORITY\SERVIZIO LOCALE per un servizio in esecuzione con questo account,
NT AUTHORITY\SERVIZIO DI RETE per un servizio in esecuzione con questo account,
oppure Sistema locale per un servizio in esecuzione con questo account.
■
ID processo. Il numero di identificazione del processo di sistema in esecuzione nel
servizio.
■
Tipo servizio. Il tipo di componente SQL Server a cui fa riferimento il servizio, ad esempio
ReportServer.
Tutti i servizi SQL Server che non vengono utilizzati o che non richiedono l’installazione
devono essere impostati con l’avvio manuale e interrotti se sono in esecuzione. Se si desidera
evitare l’esecuzione di un servizio, è necessario impostare la modalità di avvio su Disabilitato.
Considerare che il servizio SQL Server Browser fornisce informazioni di connessione ai
computer client. Se i client si connettono a SQL Server in remoto, questo servizio è necessario
(nella maggior parte delle istanze).
Nota Si può utilizzare anche l’utilità Servizi per gestire i servizi di SQL Server. Il vantaggio di
Gestione configurazione SQL Server rispetto a questa utilità è che semplifica le informazioni e
fornisce l’accesso solo ai servizi SQL Server invece che a tutti i servizi di sistema.
Book625891.book Page 60 Tuesday, March 24, 2009 1:46 PM
60
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Quando si installa SQL Server, il programma di installazione crea dei gruppi utente per i servizi
di SQL Server e aggiunge a tali gruppi gli account di servizio, in base alle necessità. Questi
gruppi hanno lo scopo di semplificare il processo di concessione delle autorizzazioni
necessarie per eseguire i servizi di SQL Server e i relativi file eseguibili. Nella tabella 3-2
vengono elencati i gruppi creati tramite il programma di installazione di SQL Server, i relativi
servizi di SQL Server e le autorizzazioni predefinite. A questi gruppi vengono inoltre assegnate
autorizzazioni di accesso a numerosi file e cartelle utilizzate da SQL Server.
Tabella 3-2 Gruppi correlati e autorizzazioni assegnati per i servizi
Servizio
Gruppo o gruppi correlati
Autorizzazioni assegnate
SQL Server
Istanza predefinita: SQLServerMSSQLUser$NomeComputer$MSSQLSERVER
Istanza denominata: SQLServerMSSQLUser$NomeComputer$NomeIstanza
Accesso come servizio
Accesso come processo batch
Sostituzione di una token a
livello di processo
Ignorare controllo incrociato
Regolazione quote di memoria
per un processo
Autorizzazione all’avvio di SQL
Server Active Directory Helper
Autorizzazione all’avvio del
writer SQL
Istanza predefinita o denominata:
SQL Server
Active Directory SQLServerMSSQLServerADHelperUser$ComputerName
Helper
N/D
SQL Server
Agent
Istanza predefinita:
SQLServerSQLAgentUser$NomeComputer$MSSQLSERVER
Istanza denominata:
SQLServerSQLAgentUser$NomeComputer$NomeIstanza
Accesso come servizio
Funziona come parte del sistema
operativo (solo su Microsoft
Windows 2000)
Accesso come processo batch
Sostituzione di token a livello di
processo
Ignorare controllo incrociato
Regolazione quote di memoria
per un processo
SQL Server
Analysis
Services
Istanza predefinita:
SQLServerMSASUser$NomeComputer$MSSQLSERVER
Istanza denominata:
SQLServerMSASUser$NomeComputer$NomeIstanza
Accesso come servizio
SQL Server
Browser
Istanza predefinita o denominata:
SQLServerSQLBrowserUser$NomeComputer
Accesso come servizio
Book625891.book Page 61 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Tabella 3-2
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
61
Gruppi correlati e autorizzazioni assegnati per i servizi (continua)
Servizio
Gruppo o gruppi correlati
Autorizzazioni assegnate
SQL Server
Integration
Services
Istanza predefinita o denominata:
SQLServerDTSUser$NomeComputer
Accesso come servizio
Autorizzazione di scrittura sul
log eventi applicazioni
Ignorare controllo incrociato
Rappresentazione di un client
dopo l’autenticazione
SQL Server
Reporting
Services
Accesso come servizio
Istanza predefinita:
SQLServerReportServerUser$NomeComputer$MSSQLSERVER e
SQLServerReportingServicesWebServiceUser$NomeComputer$MSSQLSERVER
Istanza denominata:
SQLServerReportServerUser$NomeComputer$NomeIstanza e
SQLServerReportingServicesWebServiceUser$NomeComputer$NomeIstanza
SQL Writer
N/D
N/D
Gestione dello stato dei servizi e della modalità di avvio
Per gestire i servizi di SQL Server è possibile utilizzare Gestione configurazione SQL Server o
l’utilità Servizi. Con l’utilità Servizi, i servizi di SQL Server vengono gestiti come qualsiasi altro
servizio. Con Gestione configurazione SQL Server è possibile gestire l’account di accesso al
servizio, la modalità di avvio e lo stato. Se possibile, si possono gestire anche le funzionalità
avanzate, ad esempio la directory dump, la segnalazione degli errori e i parametri di avvio. Il
vantaggio di Gestione configurazione SQL Server rispetto all’utilità Servizi è che semplifica le
informazioni disponibili così che vengano visualizzati solo i servizi SQL Server invece che tutti
i servizi di sistema. Inoltre, alcune opzioni avanzate, ad esempio la directory dump, possono
essere configurate solo utilizzando Gestione configurazione SQL Server.
Utilizzando Gestione configurazione SQL Server è possibile interrompere, avviare, sospendere
o riavviare un servizio server completando la seguente procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
2. Nel riquadro a destra verrà visualizzato un elenco dei servizi utilizzati da SQL Server e i
relativi componenti configurati, come illustrato nella figura 3-1. I servizi possono essere
utilizzati in molti modi:
❑
Fare clic sul nome del servizio per selezionarlo. Utilizzare i pulsanti Avvia, Sospendi,
Interrompi e Riavvia nella barra dei menu per gestire lo stato di esecuzione del
servizio, oppure fare clic sul pulsante Proprietà per visualizzare le proprietà.
Book625891.book Page 62 Tuesday, March 24, 2009 1:46 PM
62
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
❑
Fare clic con il pulsante destro del mouse sul servizio e utilizzare il menu di scelta
rapida per gestire lo stato di esecuzione, oppure fare clic su Proprietà per visualizzare
le proprietà.
❑
Fare doppio clic sul servizio per visualizzarne le proprietà.
Per impostare la modalità di avvio del servizio completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
2. Nel riquadro a destra, fare clic con il pulsante destro del mouse sul servizio, quindi
selezionare Proprietà dal menu di scelta rapida.
3. Nella scheda Servizio della finestra di dialogo Proprietà, utilizzare il menu a discesa
Modalità di avvio per selezionare la modalità desiderata, come illustrato nella figura 3-2. Le
opzioni disponibili sono Automatico, Disabilitato e Manuale.
4. Fare clic su OK.
Figura 3-2
Opzioni della scheda Servizio per la modalità di avvio
Impostazione dell’account di avvio del servizio
SQL Server e i relativi componenti hanno specifici diritti e autorizzazioni per l’account di avvio
del servizio. Tali autorizzazioni vengono utilizzate ogni volta che Motore di database o altri
componenti SQL Server eseguono delle attività sul sistema locale o nella rete. Come si è
appreso in “Account di servizio di SQL Server” a pagina 10, è possibile configurare i servizi in
modo da poter utilizzare tre diversi tipi di account predefiniti: Servizio locale, Sistema locale e
Servizio di rete. È inoltre possibile configurare i servizi in modo da utilizzare gli account di
dominio.
Book625891.book Page 63 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
63
Per specificare un account predefinito per un servizio di SQL Server completare la seguente
procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
2. Nel riquadro a destra, fare clic con il pulsante destro del mouse sul servizio, quindi
selezionare Proprietà.
3. Nella scheda Accesso della finestra di dialogo Proprietà, selezionare Account predefinito,
quindi utilizzare l’elenco a discesa per scegliere il servizio da utilizzare.
4. Se il servizio è in esecuzione, è necessario riavviarlo facendo clic su Riavvia. In questo
modo il servizio viene arrestato e riavviato utilizzando le nuove credenziali.
5. Fare clic su OK.
Per specificare un account di dominio per un servizio di SQL Server completare la seguente
procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
2. Nel riquadro a destra, fare clic con il pulsante destro del mouse sul servizio, quindi
selezionare Proprietà.
3. Nella scheda Accesso della finestra di dialogo Proprietà, scegliere l’opzione Account segue,
come illustrato nella figura 3-3, quindi digitare il nome e la password dell’account
designato. Per gli account di dominio, specificare il dominio come parte del nome, ad
esempio CPANDL\sqlprimary, dove CPANDL è il nome del dominio e sqlprimary è il
nome dell’account. Per gli account del computer locale, inserire .\ seguito dal nome
dell’account, ad esempio .\sqlaccount. Fare clic su Sfoglia se si desidera utilizzare la
finestra di dialogo Seleziona Utente o Gruppo per selezionare un account.
4. Se il servizio è in esecuzione, è necessario riavviarlo facendo clic su Riavvia. In questo
modo il servizio viene arrestato e riavviato utilizzando le nuove credenziali.
5. Dopo aver fatto clic su OK per chiudere la finestra di dialogo Proprietà, assicurarsi di aver
concesso le autorizzazioni e i privilegi necessari all’account di dominio specificato. Fare
riferimento alla tabella 3-2 per stabilire i gruppi a cui è necessario aggiungere l’account di
dominio per essere certi che abbia le necessarie autorizzazioni di accesso ai file e alle
cartelle utilizzate da SQL Server.
Book625891.book Page 64 Tuesday, March 24, 2009 1:46 PM
64
Parte I
Figura 3-3
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Impostazione dell’account di avvio per un dato servizio
Configurazione del flusso di file
Il flusso di file (file streaming) consente a Motore di database SQL Server di funzionare con i
BLOB (Binary Large Objects) archiviati al di fuori del database. Per distinguerli dai BLOB
standard archiviati nelle tabelle del database, quelli archiviati al di fuori vengono chiamati
BLOB FILESTREAM. Come i BLOB standard, i BLOB FILESTREAM vengono specificati nel
database come tipi di dati varbinary(max) e possono includere ogni tipo di dato non
strutturato di documenti Microsoft Office, dai video alle immagini digitali. A differenza dei
BLOB standard, i BLOB FILESTREAM non hanno un limite di dimensione pari a 2 GB. Un
BLOB FILESTREAM si distingue da un BLOB standard impostando l’attributo FILESTREAM su
una colonna varbinary(max). In questo modo si comunica a Motore di database di archiviare i
dati di quella colonna nel file system invece che nel database. SQL Server è in grado di
individuare i dati BLOB perché archivia i puntatori di BLOB nel database.
Le istruzioni Transact-SQL possono inserire, aggiornare, eseguire una query, eseguire una
ricerca ed eliminare i dati di flusso di file. Motore di database SQL Server utilizza le funzionalità
del file system NTFS per memorizzare nella cache i dati dei file durante il flusso di file, invece
che con il pool di buffer SQL Server. In questo modo si assicura che la memoria sia disponibile
per il processo di query, inoltre vengono mantenute le prestazioni di Motore di database.
Benché si possa utilizzare un’operazione di inserimento per popolare in modo preliminare il
campo FILESTREAM con un valore null, un valore vuoto o una quantità limitata di dati inline,
una notevole quantità di dati viene inviata in modo efficace a un file che utilizza interfacce
Win32. Qui, le interfacce funzionano all’interno del contesto di una transazione SQL Server e
per ottenere il percorso UNC (Universal Naming Convention) del file BLOB sul file system si
utilizza la funzione intrinseca Pathname. Si utilizza quindi l’API (Application Programming
Book625891.book Page 65 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
65
Interface) OpenSqlFilestream per ottenere un handle di file e operare sul BLOB tramite il file
system utilizzando le seguenti interfacce di flusso dei file Win32: ReadFile, WriteFile,
TransmitFile, SetFilePointer, SetEndOfFile e FlushFileBuffers. Chiudere l’handle utilizzando
CloseHandle. Dal momento che le operazioni dei file sono transazionali, non è possibile
eliminare o rinominare i file FILESTREAM attraverso il file system.
Quando si aggiorna un campo FILESTREAM, vengono modificati i dati BLOB sottostanti nel
file system. Quando un campo FILESTREAM è impostato su NULL, i dati BLOB associati con
il campo vengono eliminati. Per eseguire aggiornamenti parziali dei dati, non è possibile
utilizzare l’aggiornamento ChunkedTransact-SQL, implementato come UPDATE.Write(). Si
utilizza invece un controllo del dispositivo FS
(FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT) per recuperare il vecchio contenuto
nel file a cui fa riferimento l’handle aperto, generando una copia del contenuto. Quando si
elimina una riga o si elimina o tronca una tabella contenente dati FILESTREAM, si eliminano i
dati BLOB sottostanti nel file system.
I dati FILESTREAM devono essere archiviati in filegroup FILESTREAM. Un filegroup
FILESTREAM è un filegroup speciale contenente directory di file system invece che file. Tali
directory vengono chiamate contenitori di dati e fungono da interfaccia tra l’archiviazione di
Motore di database e l’archiviazione del file system.
Quando si utilizzano i dati FILESTREAM, è necessario considerare anche quanto segue:
■ Si possono creare snapshot database solo di filegroup standard (non-FILESTREAM). I
filegroup FILESTREAM vengono contrassegnati come non in linea per questi snapshot
database. Inoltre, un’istruzione SELECT eseguita su una tabella FILESTREAM in uno
snapshot database non deve includere una colonna FILESTREAM.
■
La distribuzione dei log supporta il flusso di file fino a che i server principali e secondari
eseguono SQL Server 2008, oppure una versione successiva, ed è abilitato il flusso di file.
■
Il mirroring dei database non supporta il flusso di file. Non è possibile creare un filegroup
FILESTREAM sul server principale, né configurare il mirroring dei database per un
database contenente filegroup FILESTREAM.
■
L’indicizzazione full-text funziona con una colonna FILESTREAM nello stesso modo in
cui funziona con una colonna varbinary(max), fino a che la tabella FILESTREAM ha una
colonna contenente l’estensione del nome del file per ogni BLOB FILESTREAM. Il motore
full-text indicizza i contenuti dei BLOB FILESTREAM e viene nuovamente indicizzato ogni
volta che viene aggiornato un BLOB FILESTREAM.
■
Una colonna varbinary(max) che ha l’attributo FILESTREAM abilitato per un Server di
pubblicazione può essere replicata su un Sottoscrittore con o senza l’attributo
FILESTREAM. È possibile specificare il modo in cui viene replicata la colonna utilizzando
la finestra di dialogo Proprietà articolo - <Articolo> oppure il parametro @schema_option
di sp_addarticle o sp_addmergearticle.
Book625891.book Page 66 Tuesday, March 24, 2009 1:46 PM
66
■
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Per il clustering di failover, i filegroup FILESTREAM devono essere inseriti in un disco
condiviso. È inoltre necessario abilitare il flusso di file su ogni nodo del cluster che ospiterà
l’istanza FILESTREAM.
Per abilitare e configurare il flusso di file completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
2. Nel riquadro a destra, fare clic con il pulsante destro del mouse sull’istanza del servizio
Motore di database che si desidera configurare, quindi selezionare Proprietà.
3. Nella scheda FILESTREAM della finestra di dialogo Proprietà, illustrata nella figura 3-4, è
ora possibile utilizzare la casella di controllo Abilita FILESTREAM per l’accesso TransactSQL per abilitare o disabilitare il flusso di file per Transact-SQL. Selezionare la casella di
controllo per consentire l’utilizzo del flusso di file, deselezionarla per impedirlo. Se si
disabilità il flusso di file, fare clic su OK e non proseguire con la procedura.
4. Se si desidera abilitare l’accesso tramite il flusso di I/O dei file, selezionare Abilita
FILESTREAM per l’accesso tramite il flusso di I/O dei file, quindi specificare il nome della
condivisione Windows da cui devono confluire i file. Il nome della condivisione
predefinita è MSSQLSERVER, che imposta la directory principale globale per il flusso di
file \\?\GLOBALROOT\Device\RsFx0101\<localmachine>\MSSQLSERVER.
Figura 3-4
Configurazione di FILESTREAM per un’istanza di Motore di database
Book625891.book Page 67 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
67
5. Se si abilita il flusso di file locale e si desidera abilitare l’accesso tramite il flusso di I/O dei
file per i client remoti, selezionare Consenti ai client remoti l’accesso tramite flusso ai dati
FILESTREAM. L’accesso del file system remoto ai dati FILESTREAM viene abilitato tramite
il protocollo SMB (Server Message Block). Se il client è remoto, dal lato client non viene
memorizzata nella cache alcuna operazione di scrittura, il che significa che le operazioni di
scrittura verranno sempre inviate al server in cui possono essere memorizzate nella cache,
se necessario.
6. Se sono state apportate delle modifiche e il servizio è in esecuzione, è necessario riavviarlo
facendo clic su Riavvia nella scheda Accesso. In questo modo il servizio verrà arrestato e
riavviato utilizzando le nuove impostazioni.
7. Fare clic su OK.
Configurazione di directory dump del servizio, segnalazione errori e
segnalazione commenti e suggerimenti utenti
Le opzioni avanzate di configurazione del servizio possono essere utilizzare per configurare le
funzionalità di segnalazione e registrazione degli errori. Quando si installa SQL Server viene
richiesto se si desidera abilitare questi due tipi di segnalazioni:
■ Segnalazione errori
■
Segnalazione commenti e suggerimenti utenti
Quando viene abilitata la segnalazione degli errori, vengono generati dei report inviati poi a
Microsoft o a un server aziendale designato ogni volta che si verificano errori irreversibili che
causano l’interruzione di un servizio. Questi report aiutano a stabilire la causa dell’errore
irreversibile, così che possa essere corretto, inoltre contengono dettagli necessari a identificare
cosa ha causato l’errore, inclusa la versione di SQL Server in uso, il sistema operativo e la
configurazione hardware, oltre ai dati della memoria o i file di processo che hanno causato
l’errore.
Le informazioni sugli errori vengono registrate anche in una directory dump designata. La
directory dump utilizzata dipende dal componente e dalla relativa istanza. Ad esempio, la
directory dump dell’istanza SQL Server predefinita potrebbe trovarsi in %Programmi%\
Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\LOG, e la directory dump
Reporting Services in %Programmi%\Microsoft SQL Server\
MSRS10.CUSTDATAWAREHOUS\Reporting Services\LogFiles.
Segnalazione commenti e suggerimenti utenti genera dei report relativi all’utilizzo dei
componenti che vengono inviati a Microsoft quando viene configurata la funzionalità. Questi
report aiutano Microsoft a capire come vengono utilizzati componenti e funzionalità.
La segnalazione e i dump degli errori possono essere gestiti individualmente per ogni servizio.
Per farlo, completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server, quindi selezionare il nodo Servizi di SQL
Server.
Book625891.book Page 68 Tuesday, March 24, 2009 1:46 PM
68
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
2. Nel riquadro a destra, fare clic con il pulsante destro del mouse sul servizio, quindi
selezionare Proprietà.
3. Selezionare la scheda Avanzate della finestra di dialogo Proprietà. Utilizzando le caselle
illustrate nella figura 3-5 è possibile eseguire quanto indicato di seguito:
❑
Utilizzare la casella Directory dump per visualizzare la directory dump attuale. Per
modificarla, inserire semplicemente la nuova directory da utilizzare. Assicurarsi che
l’account di accesso per il servizio selezionato abbia l’accesso di lettura e scrittura
appropriato per questa directory.
❑
Utilizzare i menu a discesa Segnalazione errori e Segnalazione commenti e
suggerimenti utenti per abilitare o disabilitare la segnalazione, in base alle necessità.
Selezionare Sì per abilitare la segnalazione. Selezionare No per disabilitarla.
4. Se sono state apportate delle modifiche e il servizio è in esecuzione, è necessario riavviarlo
facendo clic su Riavvia nella scheda Accesso. In questo modo il servizio viene arrestato e
riavviato utilizzando le nuove impostazioni.
5. Fare clic su OK.
Figura 3-5
Opzioni di impostazioni avanzate per il servizio selezionato
Gestione della configurazione di rete e di SQL Native
Client
Le installazioni di SQL Server possono essere configurate in modo da consentire le connessioni
locali e remote. SQL Server può utilizzare molti protocolli, inclusi Shared Memory, Named
Pipes, TCP/IP e Virtual Interface Architecture (VIA). Questi protocolli hanno tutti
configurazioni server e client separate.
Book625891.book Page 69 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
69
Come illustrato nella figura 3-6, la configurazione di rete è impostata separatamente per ogni
istanza server attraverso Configurazione di rete SQL Server. La configurazione client è
impostata su una base per client attraverso Configurazione SQL Native Client.
Figura 3-6
Server
Visualizzazione delle impostazioni di configurazione della rete per un’istanza SQL
Quando più protocolli client sono disponibili e configurati per l’utilizzo, i client li utilizzano in
un ordine di priorità specifico. Come illustrato nella figura 3-7, tale ordine predefinito è
1. Shared Memory
2. TCP/IP
3. Named Pipes
4. VIA
Figura 3-7
I client tentano di utilizzare i protocolli di rete in un ordine specifico
Nota Ogni sistema su cui è installato SQL Native Client è un client SQL Server. Possono essere
inclusi sistemi che eseguono Windows XP Professional, Windows Vista, Windows Server 2003 e
Windows Server 2008.
Gestione della configurazione delle connessioni
Le installazioni di SQL Server possono essere configurate in modo da consentire le connessioni
locali, remote e dedicate. Le connessioni locali vengono utilizzate dalle applicazioni eseguite
sul computer che esegue anche SQL Server. Le connessioni remote vengono utilizzate dai client
che si connettono al server, dalle applicazioni eseguite su altri server e da altri server SQL. Le
connessioni dedicate sono una funzionalità particolare utilizzata dagli amministratori per la
manutenzione delle installazioni SQL Server (e gestite come funzionalità configurabile invece
che come tipo di connessione consentiti).
Book625891.book Page 70 Tuesday, March 24, 2009 1:46 PM
70
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Nota La configurazione predefinita per le connessioni dipende dalla configurazione degli
account di servizio, dai componenti installati e da altre opzioni di installazione, ad esempio se è
stato eseguito un aggiornamento o una nuova installazione. In genere, una nuova installazione
viene configurata solo per le connessioni locali. Tuttavia, se sono stati installati componenti
aggiuntivi, ad esempio Reporting Services, la configurazione in genere consentirà le connessioni
remote e locali.
Benché una configurazione solo per connessioni locali fornisca ovvi vantaggi di protezione,
non è sempre possibile eseguire SQL Server in questa configurazione. Spesso è necessario
consentire le connessioni in entrata da client e server remoti, e in tal caso, i protocolli di
connessione consentiti possono influire sulla quantità di risorse utilizzate e sulla relativa
sicurezza del server. Per le connessioni remote, SQL Server 2008 può utilizzare TCP/IP, Named
Pipes o entrambi.
TCP/IP è un protocollo molto utilizzato composto da Transmission Control Protocol (TCP) e
Internet Protocol (IP). SQL Server ascolta e comunica tramite tipi di porta dinamica, statica o
entrambi, in base alla configurazione. SQL Server 2008 supporta sia la versione IPv4 che IPv6.
Gli indirizzi IP utilizzati da SQL Server per le comunicazioni di rete dipendono dalla
configurazione. TCP/IP include standard per l’inoltro del traffico che aiutano ad assicurare che
i pacchetti di dati raggiungano la loro destinazione, oltre a standard per la protezione delle
comunicazioni che aiutano a proteggere le informazioni sensibili. Tutto ciò rende TCP/IP ideale
sia per le reti locali (LAN) che WAN.
Named Pipes è un protocollo progettato per le LAN. Con Named Pipes, una parte della
memoria viene utilizzata da un processo per passare le informazioni a un altro processo, così
che l’output del primo processo diventi l’input dell’altro. Il secondo processo può essere locale,
ossia sullo stesso computer del primo, oppure remoto, ossia su un computer diverso da quello
del primo. Benché le named pipe locali vengano eseguite in modalità kernel e siano molto
veloci, le named pipe remote non funzionano bene sulle reti lente. Questo perché le named
pipe di solito generano molto traffico di messaggi sulla rete.
Dal momento che TCP/IP e Named Pipes richiedono porte specifiche e diverse per l’apertura
sul firewall, è possibile limitare il server a uno dei due protocolli per limitare la potenziale
superficie di attacco. Prima di modificare i tipi di connessioni possibili, tuttavia, è necessario
assicurarsi che tutti i client e le applicazioni siano configurati per utilizzare la libreria di rete
appropriata.
Con TCP/IP, SQL Server può comunicare utilizzando IP standard e TCP/IP Sockets
Net-Library. La porta di ascolto predefinita per l’istanza predefinita è la porta TCP 1433.
La porta di ascolto predefinita per le istanze denominate viene impostata in modo dinamico, a
meno di un’assegnazione diversa. La porta TCP 1433 viene utilizzata per le connessioni client.
Quando si utilizzano named pipes, SQL Server 2008 utilizza Named Pipes Net-Library per
comunicare tramite un indirizzo di rete standard: \\.\pipe\sql\query per l’istanza predefinita
e \\.\pipe\MSSQL$nomeistanza\sql\query per un’istanza denominata. Le named pipe
richiedono l’apertura di un intervallo di porte per la comunicazione attraverso un firewall.
Con le named pipe, il server ascolterà sulla porta TCP 445.
Book625891.book Page 71 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
71
SQL Server 2008 supporta inoltre il protocollo Shared Memory per le connessioni locali e il
protocollo VIA sia per quelle locali che remote. NWLink IPX/SPX e AppleTalk non sono più
supportati.
Configurazione di rete con Shared Memory
Il protocollo Shared Memory viene utilizzato solo per le connessioni locali. Se il protocollo è
abilitato, ogni client locale è in grado di connettersi al server utilizzando il protocollo. Se si
desidera che i client locali non utilizzino il protocollo Shared Memory, è possibile disabilitarlo.
Per abilitare e disabilitare questo protocollo, completare la procedura seguente:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi selezionare Protocolli per per l’istanza di SQL Server che si desidera
utilizzare.
2. Fare clic con il pulsante destro del mouse su Shared Memory e procedere come indicato di
seguito:
❑
Selezionare Abilita per abilitare l’utilizzo del protocollo.
❑
Selezionare Disabilita per impedirne l’utilizzo.
Configurazione di rete con Named Pipes
Il protocollo Named Pipes viene utilizzato principalmente per le connessioni locali e
remote dalle applicazioni scritte per le versioni precedenti di Windows. Quando si
abilita Named Pipes, SQL Server 2008 utilizza Named Pipes Net-Library per comunicare
tramite un indirizzo di rete standard: \\.\pipe\sql\query per l’istanza predefinita e
\\.\pipe\MSSQL$nomeistanza\sql\query per un’istanza denominata. Oltre ad abilitare o
disabilitare l’utilizzo di Named Pipes, è possibile configurarne le proprietà per modificare la
named pipe da utilizzare.
Per gestire la configurazione di rete con Named Pipes completare la procedura seguente:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi selezionare Protocolli per dell’istanza di SQL Server.
2. Fare clic con il pulsante destro del mouse su Named Pipes, quindi selezionare Proprietà.
3. Ora è possibile eseguire quanto segue:
❑
Utilizzare il menu a discesa Abilitato per abilitare o disabilitare il protocollo.
Selezionare Sì per consentire l’utilizzo del protocollo, oppure No per impedirlo.
❑
Modificare il nome della pipe predefinita digitando un nuovo valore nel campo Nome
pipe (non dimenticare di aggiornare la configurazione client).
4. Fare clic su OK.
Book625891.book Page 72 Tuesday, March 24, 2009 1:46 PM
72
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
Configurazione di rete con TCP/IP
Il protocollo TCP/IP è il protocollo preferito per le connessioni locali o remote a SQL Server.
Quando si utilizza TCP/IP, SQL Server ascolta le richieste su una specifica porta TCP e un
indirizzo IP. Per impostazione predefinita, SQL Server ascolta sulla porta TCP 1433 su tutti gli
indirizzi IP configurati per le relative schede di rete. Per motivi di protezione si potrebbe voler
fare in modo che SQL Server utilizzi una configurazione TCP/IP diversa; le opzioni a
disposizione sono molte. Si può
■ Configurare SQL Server in modo che ascolti su tutti gli indirizzi IP configurati e utilizzi la
stessa configurazione di porta TCP, indipendentemente dal numero di indirizzi IP inclusi.
■
Configurare SQL Server in modo che ascolti solo specifici indirizzi IP abilitati e configurare
ogni porta TCP di ascolto in modo separato per ogni indirizzo IP.
In entrambi i casi, è possibile configurare le porte TCP di ascolto in modo manuale o dinamico.
Quando si assegna una porta TCP di ascolto manualmente, tale porta è statica e cambia solo se
viene assegnato un nuovo valore. Quando si assegna una porta TCP di ascolto in modo
dinamico, la relativa istanza SQL Server assegna in modo dinamico la porta TCP di ascolto ogni
volta che viene avviato il relativo dispositivo. Dal momento che la porta TCP di ascolto viene
assegnata in modo dinamico all’avvio, le applicazioni client hanno bisogno di un server di
supporto per stabilire la porta di ascolto in entrata; è a questo punto che entra in gioco il
servizio SQL Server Browser. Quando le istanze SQL Server utilizzano porte TCP assegnate in
modo dinamico, il servizio SQL Server Browser verifica le connessioni in entrata e le indirizza
alla porta attuale per la relativa istanza SQL Server.
Nota Non utilizzare porte assegnate in modo dinamico quando i client si connettono tramite un
firewall. In tal caso potrebbero verificarsi problemi di connessione ogni volta che cambia la porta
assegnata in modo dinamico.
Disabilitazione, abilitazione e configurazione di TCP/IP
Per disabilitare o abilitare e configurare TCP/IP, completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi selezionare Protocolli per dell’istanza di SQL Server.
2. Fare clic con il pulsante destro del mouse su TCP/IP, quindi selezionare Proprietà. Verrà
visualizzata la finestra di dialogo Proprietà - TCP/IP.
3. Nella scheda Protocollo è ora possibile utilizzare il menu a discesa Abilitato per abilitare o
disabilitare il protocollo. Selezionare Sì per consentire l’utilizzo del protocollo, oppure No
per impedirlo. Se si disabilita TCP/IP, fare clic su OK e non proseguire con la procedura.
4. Nella scheda Protocollo è possibile configurare i parametri che controllano quando e come
l’istanza SQL Server tenta di mantenere inattive le connessioni TCP/IP. Vengono utilizzati
due parametri:
Book625891.book Page 73 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
73
❑
Attesa su tutti Controlla se SQL Server resta in attesa su tutti gli indirizzi IP
configurati per le relative schede di rete. Se questo valore viene impostato su Sì, le
impostazioni della casella delle proprietà IPAll della scheda Indirizzi IP vengono
applicate a tutti gli indirizzi IP attivi. Se il valore viene impostato su No, è necessario
configurare ogni indirizzo IP separatamente utilizzando le relative caselle delle
proprietà della scheda Indirizzi IP.
❑
Keep-alive Controlla quanto spesso SQL Server prova a verificare che il computer
alla fine della connessione remota sia ancora disponibile. Per impostazione
predefinita, SQL Server verifica una connessione remota dopo che è rimasta inattiva
per 30 secondi. Nella maggior parte dei casi, è sufficiente un valore tra 30 e 60
secondi. In base a quanto è occupato il server e all’importanza dell’attività del client,
si potrebbe voler verificare e mantenere inattive le connessioni più spesso,
assicurando che tali connessioni non vengano terminate. Si può utilizzare un valore
inferiore, ad esempio 15 o 20 secondi, per assicurare che le connessioni inattive
vengano convalidate più velocemente.
5. Fare clic su OK.
Utilizzo delle configurazioni di rete TCP/IP statiche
Per fare in modo che un’istanza SQL Server utilizzi una configurazione di rete TCP/IP statica
completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi selezionare Protocolli per dell’istanza di SQL Server.
2. Fare clic con il pulsante destro del mouse su TCP/IP, quindi selezionare Proprietà. Nella
scheda Indirizzi IP della finestra di dialogo Proprietà - TCP/IP dovrebbero essere
visualizzate le voci che rappresentano gli indirizzi IPv4 e IPv6 configurati sul server. Le
singole voci degli indirizzi IP, in ordine numerico (ad esempio IP1, IP2, IP3 e così via),
servono per quando SQL Server è in attesa di specific indirizzi IP. La voce IPAll viene
utilizzata quando SQL Server ascolta tutti gli indirizzi IP del server.
Nota Gli indirizzi IP 127.0.0.1 e ::1 sono gli indirizzi di loopback locali per IPv4 e IPv6,
rispettivamente. Questi indirizzi vengono utilizzati per ascoltare le connessioni dei client
locali.
3. Se si desidera che SQL Server ascolti tutti gli indirizzi IP configurati sul server, completare
quando segue:
a. Nella scheda Protocollo, impostare Attesa su tutti su Sì.
b. Nella scheda Indirizzi IP, impostare una specifica porta TCP di ascolto per IPAll.
Quella predefinita è 1433. Per modificare la porta TCP di ascolto, digitare quella
desiderata nel campo a disposizione.
Book625891.book Page 74 Tuesday, March 24, 2009 1:46 PM
74
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
4. Se si desidera abilitare l’ascolto su specifici indirizzi IP e porte TCP, completare quanto
segue:
a. Nella scheda Protocollo, impostare Attesa su tutti su No.
b. Nella scheda Indirizzi IP, specificare gli indirizzi IP che verranno ascoltati attivamente
da SQL Server impostando le relative voci di indirizzo IP su Attivo Sì e Abilitato Sì.
Digitare quindi la porta TCP di ascolto desiderata per ogni indirizzo IP nei campi a
disposizione.
c. Nella scheda Indirizzi IP, specificare gli indirizzi IP che non verranno ascoltati
attivamente da SQL Server impostando le relative voci di indirizzo IP su Attivo No e
Abilitato No.
5. Fare clic su OK.
Suggerimento SQL Server può ascoltare su più porte TCP lo stesso indirizzo IP. Ascoltare
semplicemente le porte desiderate separate da virgola, ad esempio 1433,1533,1534. Assicurarsi di
non inserire uno spazio tra la virgola e il valore. Il campo Porta TCP è limitato a un totale di 2047
caratteri.
Utilizzo delle configurazioni di rete TCP/IP dinamiche
Per fare in modo che un’istanza SQL Server utilizzi una configurazione di rete TCP/IP dinamica,
completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi selezionare Protocolli per dell’istanza di SQL Server.
2. Fare clic con il pulsante destro del mouse su TCP/IP, quindi selezionare Proprietà. Nella
scheda Indirizzi IP della finestra di dialogo Proprietà - TCP/IP dovrebbero essere
visualizzate le voci che rappresentano gli indirizzi IPv4 e IPv6 configurati sul server. Le
singole voci degli indirizzi IP, in ordine numerico (ad esempio IP1, IP2, IP3 e così via),
servono per quando SQL Server è in attesa di specific indirizzi IP. La voce IPAll viene
utilizzata quando SQL Server ascolta tutti gli indirizzi IP del server.
Nota Gli indirizzi IP 127.0.0.1 e ::1 sono gli indirizzi di loopback locali per IPv4 e IPv6,
rispettivamente. Questi indirizzi vengono utilizzati per ascoltare le connessioni dei client
locali.
3. Se si desidera che SQL Server ascolti sulla stessa porta dinamica tutti gli indirizzi IP
configurati sul server, completare quando segue:
a. Nella scheda Protocollo, impostare Attesa su tutti su Sì.
b. Nella scheda Indirizzi IP, digitare 0 (zero) nella casella Porte dinamiche TCP.
Book625891.book Page 75 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
75
4. Se si desidera abilitare l’ascolto su specifici indirizzi IP, completare quanto segue:
a. Nella scheda Protocollo, impostare Attesa su tutti su No.
b. Nella scheda Indirizzi IP, specificare gli indirizzi IP che verranno ascoltati attivamente
da SQL Server impostando le relative voci di indirizzo IP su Attivo Sì e Abilitato Sì.
Quindi, digitare 0 (zero) nel relativo campo Porte dinamiche TCP.
c. Nella scheda Indirizzi IP, specificare gli indirizzi IP che non verranno ascoltati
attivamente da SQL Server impostando le relative voci di indirizzo IP su Attivo No e
Abilitato No.
5. Fare clic su OK.
Impostazione della protezione per le configurazioni Native Client
Per impostazione predefinita i client non utilizzano Secure Sockets Layer (SSL) oppure tentano
di convalidare i certificati server. Per imporre la crittografia del protocollo, la convalida del
certificato server o entrambi, completare la seguente procedura:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, quindi Configurazione SQL Native Client.
2. Fare clic con il pulsante destro del mouse su Configurazione SQL Native Client, quindi
selezionare Proprietà.
3. Per Forza crittografia protocollo, selezionare Sì per imporre ai client l’utilizzo di SSL,
selezionare No per l’utilizzo di connessioni non crittografate.
4. Per Considera attendibile certificato, selezionare Sì per imporre ai client la convalida dei
certificati server, selezionare No per non imporla.
Configurazione dell’ordine dei protocolli Native Client
Shared Memory è sempre il protocollo di connessione locale preferito. Per disabilitarlo al fine
di precluderne l’utilizzo e modificare l’ordine degli altri protocolli, completare la seguente
procedura:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione SQL
Native Client, quindi fare clic su Protocolli client.
2. Fare clic con il pulsante destro del mouse sui protocolli elencati, quindi selezionare
Ordina. Verrà visualizzata la finestra di dialogo Proprietà protocolli client.
3. In questa finestra di dialogo è possibile
❑
Modificare l’ordine di un protocollo abilitato. Prima fare clic sul nome del protocollo
che si desidera spostare, quindi utilizzare i pulsanti con le frecce a destra dell’elenco
Protocolli abilitati fino a quando il protocollo viene posizionato nel punto dell’elenco
desiderato.
Book625891.book Page 76 Tuesday, March 24, 2009 1:46 PM
76
Parte I
Nozioni principali sull’amministrazione di Microsoft SQL Server 2008
❑
Disabilitare o abilitare i protocolli. Per disabilitare un protocollo abilitato,
selezionarlo, quindi fare clic sul pulsante di spostamento a sinistra per spostare il
nome del protocollo nell’elenco Protocolli disabilitati. Per abilitare un protocollo
disabilitato, selezionarlo, quindi fare clic sul pulsante di spostamento a destra per
spostare il nome del protocollo nell’elenco Protocolli abilitati.
❑
Abilitare o disabilitare il protocollo Shared Memory. Per abilitare il protocollo Shared
Memory per le connessioni client locali, selezionare Abilita protocollo Shared
Memory. Per disabilitare il protocollo Shared Memory per le connessioni client locali,
deselezionare Abilita protocollo Shared Memory.
4. Fare clic su OK.
Impostazione della configurazione Native Client per Shared
Memory
Il protocollo Shared Memory viene utilizzato solo per le connessioni client locali. Per abilitare
e disabilitare questo protocollo per i client, completare la procedura seguente:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione di rete
SQL Server, Configurazione SQL Native Client, quindi fare clic su Protocolli client.
2. Fare clic con il pulsante destro del mouse su Shared Memory, quindi selezionare Proprietà.
3. Utilizzare il menu a discesa Abilitato per abilitare o disabilitare il protocollo. Selezionare Sì
per consentirne l’utilizzo, oppure No per impedirlo.
Impostazione della configurazione Native Client per Named Pipes
Il protocollo Named Pipes viene utilizzato principalmente per le connessioni locali e remote
dalle applicazioni scritte per le versioni precedenti di Windows. Le named pipe predefinite si
trovano in \\.\pipe\sql\query per l’istanza predefinita e in \\.\pipe\MSSQL$nomeistanza\
sql\query per un’istanza denominata. La pipe predefinita per i client viene impostata
utilizzando un alias. L’alias standard per i client è sql\query, che fa riferimento alla pipe
predefinita, ad esempio \\.\pipe\sql\query o \\.\pipe\MSSQL$nomeistanza\sql\query. Se la
pipe predefinita viene modificata nella configurazione di rete del server, sarà necessario
modificarla nella configurazione client (e per tutti i client che si connetteranno a SQL Server in
questo modo). Ad esempio, se SQL Server utilizza \\.\pipe\sqlserver\app1 come pipe
predefinita, il client deve utilizzare \sqlserver\app1 come nome pipe.
Per gestire la configurazione client con Named Pipes completare la procedura seguente:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione SQL
Native Client, quindi fare clic su Protocolli client.
2. Fare clic con il pulsante destro del mouse su Named Pipes, quindi selezionare Proprietà. Si
può
❑
Utilizzare il menu a discesa Abilitato per abilitare o disabilitare il protocollo.
Selezionare Sì per consentirne l’utilizzo, oppure No per impedirlo.
Book625891.book Page 77 Tuesday, March 24, 2009 1:46 PM
Capitolo 3
❑
Gestione della configurazione di rete, accesso e protezione della superficie di attacco
77
Impostare la pipe predefinita. Nella finestra di dialogo Proprietà - Named Pipes,
inserire la pipe predefinita per il client nel campo a disposizione, quindi fare clic su
OK.
Impostazione della configurazione Native Client per TCP/IP
Il protocollo TCP/IP è il protocollo preferito per le connessioni locali o remote a SQL Server.
Quando ci si connette a un’istanza predefinita di Motore di database utilizzando TCP/IP, il
client deve conoscere il valore della porta TCP. Quindi, se un’istanza predefinita è stata
configurata per ascoltare su una porta diversa, è necessario modificare la configurazione
TCP/IP del client in base a tale numero di porta. Quando ci si connette a un’istanza denominata
di Motore di database, il client tenterà di ottenere il numero di porta dal servizio SQL Server
Browser sul server a cui si sta connettendo. Se questo servizio non è in esecuzione, il numero
di porta TCP deve essere fornito nella configurazione client o come parte della stringa di
connessione.
Per gestire la configurazione client con TCP/IP, completare la procedura seguente:
1. Avviare Gestione configurazione SQL Server. Espandere il nodo Configurazione SQL
Native Client, quindi fare clic su Protocolli client.
2. Se si desidera abilitare o disabilitare TCP/IP, fare clic con il pulsante destro del mouse su
TCP/IP, quindi selezionare Abilita o Disabilita in base alle necessità.
3. Per visualizzare le proprietà della connessione TCP/IP, fare clic con il pulsante destro del
mouse su TCP/IP, quindi selezionare Proprietà.
4. Per impostare la porta predefinita, selezionare Proprietà. Nella finestra di dialogo Proprietà
- TCP/IP, inserire la porta predefinita per il client nel campo a disposizione.
5. È inoltre possibile configurare i parametri che controllano quando e come i client provano
a mantenere inattive le connessioni TCP/IP. Vengono utilizzati due parametri:
❑
Keep-alive Controlla quando un client tenta per la prima volta di verificare che una
connessione inattiva sia ancora valida e tenta di mantenerla. Per impostazione
predefinita, il client verifica una connessione dopo che è rimasta inattiva per 30
secondi. Nella maggior parte dei casi, è sufficiente un valore tra 30 e 60 secondi. In
base a quanto è occupato il server e all’importanza dell’attività del client, si potrebbe
voler verificare e mantenere inattive le connessioni più spesso, assicurando che tali
connessioni non vengano terminate. Si può utilizzare un valore inferiore, ad esempio
15 o 20 secondi, per assicurare che le connessioni inattive vengano convalidate più
velocemente.
❑
Intervallo keep-alive Controlla quanto spesso un client verifica una connessione
inattiva quando non riceve una risposta iniziale alla trasmissione KEEPALIVE. Per
impostazione predefinita, il client trasmette nuovamente la richiesta KEEPALIVE ogni
secondo. Se molti client si stanno connettendo a un server occupato, si potrebbe voler
aumentare l’intervallo keep-alive per ridurre il numero di ritrasmissioni KEEPALIVE.
6. Fare clic su OK.