Press "Enter" to skip to content

Sql Server 2012 Installazione su Windows 10

Installare SQL Server non è una operazione che si fa quotidianamente, ma in questo periodo l’ho fatto per due volte passando a Windows 10 le macchine di sviluppo pertanto ho deciso di scrivere un po’ di appunti perché per installare una versione che ormai possiamo definire “vecchia” di SQL Server come la 2012 ci sono un paio di cose da sapere e saper fare. L’installazione di SQL è una cosa ricorsiva nei miei blog, perché succede spesso che venga interpellata in luoghi ove l’installazione è stata effettuata senza ricordare i 3 o 4 passaggi fondamentali e per questo si deve perdere del tempo per rimetterla a posto perciò visto che prevenire è sempre meglio che curare ecco come si fa.

Perchè installare SQL Server 2012 e non 2014 o 2016? Perché al momento, SQL Server 2012 è ancora quello più utilizzato da tutti i miei clienti, pertanto per essere in grado di ricevere i loro database, elaborarli e restituirli (nel tipo di lavoro che faccio io accade spesso) non posso utilizzare un server più recente del loro perché l’operazione di Attach del database ad un server più recente ne modifica la struttura e quindi in seguito non è più compatibile con quello del cliente. Ci sono sicuramente dei mezzi per aggirare il problema, ma nel mio caso, evitare è meglio che aggirare.

Importante, prima di installare SQL 2012

Sql server 2012 per funzionare necessita del framework .Net 3.5 installato sulla macchina, e Windows 8, 8.1 e 10 non installano questo framework per default quando vengono installati, pertanto è necessario installarlo manualmente prima di installare Sql server 2012, perché l’installer di Sql Server non lo scarica e installa automaticamente (probabilmente perché nel 2012 erano certi che fosse installato su tutte le macchine). Non sono sicura che sia lo stesso anche sui Server Windows 2012 e 2012 R2 ma invito a controllare che sia installato perché altrimenti l’installazione fallisce clamorosamente.

Come installare il framework .Net 3.5? E’ molto semplice, Control Panel> Programs > Programs and Features> e poi usare l’opzione Turn windows features on or off. (Se il vostro sistema è in italiano o altra lingua e non in inglese siate buoni e provate a tradurre). La finestra è la seguente.

Installer 00[6]

Basta selezionare la checkbox relativa al framework 3.5 e premere OK.

Incrociate le dita e seguite quanto richiesto, se siete fortunati, Windows scaricherà il framework da Internet e lo installerà senza necessità di intervento.

Se non siete fortunati, come è stato per me, vi verrà restituito uno degli errori incomprensibili con un numero negativo tipo -2599999999 e un messaggio di errore generico che vi informerà che non è stato possibile completare l’operazione.

In questo caso, dovete inviare una preghierina a San Luca, protettore dei programmatori e dei sistemisti e fare la seguente operazione:

  • Aprite un prompt dei comandi in modalità Administrator (<Windows +X> Prompt dei comandi Administrator)
  • Inserite nel DVD il disco con Windows 10 (o la versione su cui lavorate) oppure montate la ISO dello stesso su un disco virtuale, nel mio caso era il disco D:
  • Digitate: D: <Enter> (o il nome del disco su cui il DVD del sistema operativo si trova.
  • Digitate: Dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess sostituendo D: con il disco dove si trova il DVD di Windows se è diverso.

Se la preghierina ha raggiunto San Luca, vedrete che appariranno alcune informazioni simili a queste dipende dalla versione del vostro sistema operativo:

Installer 00bis[5]

Quando la percentuale avrà raggiunto il 100% il framework sarà installato e tutto sarà a posto.

Adesso possiamo avviare l’installazione di SQL Server, quindi inserite il DVD o montate la ISO del vostro installer io utilizzerò la versione Developer, che è identica alla Enterprise ma anche alla Standard, in realtà è praticamente identica anche alla Express, per mio scrupolo manterrò gli screenshot di tutte le pagine dell’installer, potrebbe esservene qualcuno in meno o in più se usate una versione diversa, in realtà, ci sono solo un paio di punti critici ed importanti nell’installazione, per il resto, si tratta solo di premere Next>.

Installazione di SQL Server 2012

Prima di iniziare l’installazione, dovete decidere dove intendete far mettere i Database al vostro server. Se non lo stabilirete voi, l’installer automaticamente porrà i database sulla cartella Programmi, praticamente il peggior posto possibile ove mettere dei dati, perché voglio sperare che da Sistemisti o Sviluppatori, siate a conoscenza del fatto che mettere dei dati sulle cartelle di sistema preposte a scopi quali ospitare solo i programmi installati sia una idea alquanto malsana, in quanto su queste cartelle non vengono assegnati permessi di alcun tipo agli utenti. Quindi se per caso dovessero aver bisogno di fare un Restore, potrebbero non avere accesso alla cartella Backup dove solitamente vanno posti i Backup per restorare i database. Dovessero aver bisogno di fare l’Attach di un Database, potrebbero non avere accesso alla cartella Data ove tale database dovrebbe essere posto per poter essere visto dal sistema.

Perché dico questo? Perché mi è successo ovviamente e perché è importante sapere dove i database si trovano per poter predisporre dei sistemi di backup periodico fatti in modo opportuno perché perdere il contenuto di database, non è mai una cosa opportuna.

Pertanto io consiglio di creare una cartella sulla root del disco Dati del vostro PC/Server ad esempio C:\sql.dir oppure D:\sql.dir  se avete una partizione diversa predisposta per i dati come di solito piace fare a me. Il nome della cartella può essere quello che preferite, io uso questo in modo standard perché è facile comprendere che si tratta di una cartella dedicata a SQL server.

Per iniziare l’installazione, spostatevi sulla Root del DVD dell’installer di SQL Server 2012 e fate doppio click su setup.exe

Installer 01[5]

Prima schermata, vi conduce a tutta la documentazione necessaria a pianificare l’installazione e ovviamente, come tutti gli sviluppatori e i sistemisti che si rispettino, la ignorerete completamente premendo come su indicato Install per iniziare l’installazione.

Installer 02[5]

Per iniziare l’installazione, premere il primo link, che permette di installare una nuova istanza e potrà anche essere utilizzato per aggiungere funzionalità a un istanza esistente.

Installer 03[5]

Essendo scrupoloso, l’installer verificherà che tutto sia a posto premete ovviamente OK per continuare.

Installer 04[5]

La prima schermata con qualcosa di importante, se come me vi trovate un messaggio di avviso, leggetelo e non ignoratelo. In questo caso l’avviso riguarda il firewall, se sulla macchina c’è un Antivirus con il Firewall attivato, se dovete fare accedere gli utenti al server SQL da altri computer sulla rete, dovrete inserire sul firewall le regole necessarie ad aprire la porta necessaria all’accesso a SQL Server. Oltre a ciò, dovrete attivare il protocollo di rete TCP sul server affinché esso risponda alle richieste delle applicazioni che usano SQL Server. Questa operazione la vedremo dopo la fine dell’installazione. Proseguiamo usando il tasto Next>.

Installer 05[5]

Se state installando una versione non gratuita, qui andrà inserita la product key che vi sarà stata fornita dal rivenditore, sia essa una chiave virtuale per chi ha un sistema con contratto di licenza open, o il codice posto sulla confezione se si tratta di un prodotto acquistato in scatola.

Installer 06[5]

Accettiamo i termini di licenza e come facciamo tutti, ignoriamo la richiesta di inviare i dati sulla configurazione a Microsoft così non sapranno mai quello che i loro utenti fanno realmente. Premiamo Next>.

Installer 07[5]

Su questa finestra, raccomando di evitare l’ultima opzione, perché ovviamente non vi darebbe la possibilità di fare la configurazione in modo corretto e professionale del sistema.

Installer 08[5]

Questa è la prima pagina importante, qui vengono indicate le funzionalità da installare, nel mio caso, ho scelto solo i servizi essenziali, perché non ho bisogno delle funzioni di replica, non ho bisogno dei Reporting Services o degli Analysis Services ma è chiaro che in questo caso, siete voi a dover decidere che cosa vi serve installare.

Installer 09[5]

Ancora una volta il sistema verifica se vi siano problemi per l’installazione. Quindi premiamo Next> e andiamo avanti.

Installer 10[5]

Seconda pagina importante, la pagina che ci dice che tipo di Istanza stiamo installando. Di cosa si tratta? Al contrario di altri tipi di applicazioni di servizio, di cui su un computer può esistere una singola istanza, sullo stesso computer possono essere installate più istanze di SQL Server e soprattutto queste istanze potrebbero essere versioni diverse di SQL Server, per esempio, potrei installare sullo stesso PC sia SQL Server 2012 che SQL Server 2014 oppure, sia SQL Server 2012 Enterprise che SQL Server 2012 Express. E questi due SQL Server potrebbero funzionare fianco a fianco ciascuno per conto proprio senza interferire. Non solo, il sistema di management della versione più “Alta” sarà in grado di vedere e manipolare servizi e database su entrambe le istanze.

L’istanza è quindi un identificativo univoco dato a SQL Server per permettere di averne più versioni che funzionano in parallelo su una macchina.

Le due opzioni di questa finestra sono: Default Instance oppure Named Instance, qual’è la differenza? Una differenza molto semplice, la Default Instance si chiama come il computer pertanto per connettervi al database su un istanza di default dovrete dare come Server Name: NomeMacchina e come Database Name: NomeDatabase. Un’Istanza nominata (Named Instance) invece si chiama con il NomeComputer\NomeIstanza quindi per poter connettervi al database su un istanza nominata dovrete dare come Server Name: NomeMacchina\NomeIstanza e come Database Name: NomeDatabase. Tutto qui? Si, tutto qui. Può tornare utile ad esempio utilizzando una serie di istanze di SQL Express su un server web condiviso fra più siti web per creare una scatola dati per ogni sito web contenente uno o più database con le proprie risorse riservate.

In questo caso io ho installato la Default Instance e quindi premo Next>.

Installer 11[5]

Prima di procedere, l’installer indica quanto spazio su disco verrà occupato premiamo Next> per proseguire.

Installer 12[5]

Questa è un altra delle pagine importanti per la configurazione, ovvero la pagina ove indichiamo a SQL Server quali sono gli accont utente che verranno utilizzati per far girare il servizio: E’ importante sapere che gli utenti di servizio di SQL Server, devono avere il minimo numero di permessi sul minimo numero di cartelle, però, hanno bisogno di permessi. Gli utenti standard proposti, per un installazione basica come quella di una macchina di sviluppo possono essere lasciati come tali, sarà l’installer a dare loro i permessi corretti. Se invece state procedendo ad un installazione su un server di dominio, che dovrà avere accessi effettuati esternamente al server stesso, oppure dovrà avere il permesso di accedere ad esempio a cartelle per i backup su macchine diverse da quella dove il servizio gira, che potrebbe aver bisogno di configurazioni specifiche e speciali, allora vi consiglio di  leggere con attenzione l’articolo di MSDN Configure WIndows Service Accounts and Permissions che da una spiegazione dettagliata di come funzionano e come devono essere configurati gli utenti di servizio per SQL Server. Prima di premere Next, clicchiamo sul Tab Collation in alto sulla finestra.

Installer 13[5]

Una delle cose importanti da sapere riguardo SQL Server è che in un database SQL Server potete inserire dati in qualsiasi linguaggio del mondo. Quando io ho fatto gli esami di certificazione, nel 2001 su SQL Server 2000, la collation era una cosa molto seria perché era una sola per tutto il server e perché su di essa si basavano tutti i database. Sbagliare la collation (che è l’oggetto che determina come vengono comparate le stringhe nei database) poteva provocare dei danni.

Dalla versione 2005 in poi, per fortuna, c’è modo di cambiare la collation dopo l’installazione, ma in realtà non è così importante perché la collation può essere assegnata ad un database (ed essere diversa per ogni database) e può anche essere assegnata ad uno specifico campo di un database. Ad esempio, se dovete ospitare delle stringhe scritte con caratteri orientali, potreste definire per i campi che li ospitano una delle collation specifiche che comparano utilizzando gli algoritmi collegati agli ideogrammi.

La collation proposta per default è Latin1_General_CI_AS ovvero lettere latine, CASE INSENSITIVE, ACCESS SENSITIVE ovvero comparazione che non tiene conto di maiuscole e minuscole, ma tiene conto degli accenti. Il fatto di poter cambiare la collation per uno specifico campo su un database, ci darà la libertà ove fosse necessario, di poter fare comparazioni Case Sensitive o specifiche di un altro set di caratteri, senza per questo essere costretti ad una configurazione simile su tutto il database o su tutto il server.

Proseguiamo con un Next>.

Installer 14[5]

Un altra finestra importante, la finestra che ci permette di configurare la parte di Security di SQL Server. La prima cosa da decidere su questa finestra è che tipo di Login attiviamo sul server, per chi fosse un neofita riguardo SQL Server, è importante sapere che gli utenti che hanno accesso al computer su cui è installato SQL Server, non hanno automaticamente diritto di accedere al server dati, non solo, anche se viene loro consentito di accedere al server dati, non è detto che abbiano accesso a tutti i database, e non è detto che tutti gli utenti abbiano accesso ai dati con le stesse funzionalità.

L’accesso al server e l’accesso ai dati è gestito dalla Security di SQL Server. Microsoft mette a disposizione due modalità di accesso al server dati, la modalità classica e quella attraverso i servizi di security di Windows, ovvero Utenti e gruppi di Windows, Locali o di Dominio. In questa finestra possiamo scegliere se utilizzare solo la modalità con accesso tramite autenticazione Windows oppure se attivare anche la modalità classica, selezionando quello che viene chiamato Mixed Mode.

Nel caso selezioniamo solo la modalità con Autenticazione Windows, non sarà possibile creare e dare accesso ad utenti utilizzando il sistema con Username e Password (Sql Server Login). Attivare il solo accesso tramite autenticazione di Windows è sicuramente un mezzo per rendere la sicurezza più alta, ma crea anche alcuni problemi, il principale è che se il server deve permettere l’accesso ad utenti esterni alla macchina su cui è installato (come normalmente è per un server SQL aziendale), in modalità Windows vi possono accedere solo utenti che siano membri del Dominio in cui si trova il server o utenti locali alla macchina. Mentre per permettere agli utenti che non sono parte del dominio di accedere alla macchina, è indispensabile poter utilizzare l’autenticazione standard con Username e Password.

Anche se Virtualmente meno sicura, usualmente io utilizzo la connessione tramite Login SQL perché questo  mi da un vantaggio fondamentale, infatti, con l’autenticazione Windows devo mappare gli utenti che devono accedere ai database del server sul server stesso, in modo diretto oppure utilizzando dei gruppi di windows, ma questo implica che gli utenti hanno accesso ai database non solo tramite le mie applicazioni ma anche utilizzando strumenti più generici, come ad esempio Excel ed Access. Questo tipo di accesso può risultare pericoloso perché permette agli utenti modifiche ai database fatte con mezzi diversi dalle applicazioni che hanno il completo controllo sui dati e sanno come evitare inconsistenze. Anche il solo accesso in lettura può essere pericoloso perché si presta alla possibilità di copiare e portare via i dati.

Questo è il motivo per cui solitamente, utilizzo l’autenticazione SQL base, perché in questo modo, l’amministratore del sistema può creare un login ad hoc per ogni applicazione usata dagli utenti, dare a quell’utente i permessi necessari sui database e poi creare una stringa di connessione crittografata nella mia applicazione che sarà l’unica a conoscere Username e Password per connettersi e accedere al server dati.

E’ ovvio che ci sono strumenti che permettono, nel caso del dolo, di intercettare nomi utenti e password, però per quel che riguarda l’accesso collegato all’Utente medio del sistema, quindi l’impiegato non tecnico e senza skill relativi al furto di dati, fornisce maggior controllo sul “Chi Vede Cosa”.

Su questa pagina, qualsiasi sia la modalità che sceglierete di utilizzare, è indispensabile che prima dell’installazione, decidiate chi sono gli utenti amministratori del server SQL, usualmente, io che installo da amministratore del sistema, inserisco il mio utente come amministratore del server usando l’apposito tastino Add Current User. Oltre all’utente che ha installato il server, però, aggiungo almeno altri 2 gruppi di utenti Windows. Il gruppo degli Amministratori locali della macchina, ed il gruppo degli Amministratori di Dominio se la macchina fa parte di un dominio Active Directory.

Installer 15[4]

Per aggiungere gli amministratori locali, uso il tasto Add, e nella finestra Select User or Group Premo Advanced e come nell’immagine qui sopra seleziono il computer su Object Types se non fosse già selezionato clicco il pulsante ed aggiungo Groups premo Find Now ottenendo una lista degli Utenti e dei Gruppi mappati sul computer.

Installer 16[4]

Seleziono gli Administrators del computer locale e li aggiungo alla lista degli amministratori di SQL Server, in modo tale che se vi sono più amministratori sulla macchina possano accedere ed amministrare il server database. Se siete dei sistemisti un po’ più esperti, sapete che invece di effettuare la ricerca, basta scrivere “Builtin\Administrators” sulla finestra base, che poi è quello che succede premendo OK sulla finestra qui sopra.

Installer 17[4]

La finestra di aggiunta degli utenti e gruppi per gli Administrator Locali.

Installer 18[4]

Oltre agli amministratori locali, se ci troviamo in un Dominio, aggiungo sempre anche gli amministratori di dominio perché è logico che possano aver bisogno di amministrare il server SQL, potrebbe anche non essere il caso, dipende da quanto complessa è l’organizzazione e da come siano suddivisi e frammentati i ruoli amministrativi. Diciamo che nelle piccole e medie organizzazioni di solito i domain admin devono avere accesso a tutto.

Installer 20[4]

Passiamo al secondo Tab per la configurazione dell’Istanza, il Tab che considero il più importante perché qui stabilirete dove volete che i vostri database vengano installati e come volete configurare le directory per i database utente. Nella figura qui sopra vedete la configurazione di default, che vi invito caldamente a non lasciare tale perché è davvero una porcheria.

Installer 21[4]

Iniziate cambiando la Data Root Directory, ed inserendo quella di esempio da me indicata all’inizio o quella che avete creato con un nome a voi congeniale.

Installer 22[4]

Proseguiamo modificando le directory di destinazione per i database utente e per i backup dei database, utilizzando un nome di cartella più semplice e diretto creando le due cartelle se non lo avessimo già fatto prima.

Installer 23[4]

Terzo ed ultimo tab di configurazione, in questo caso, qui attivate la possibilità di utilizzare il FileStream ovvero se volete usare SQL Server per conservare documenti, potete creare dei campi chiamati FileStream dove verranno inseriti i vostri files, questi campi invece di essere dentro al database, saranno memorizzati su cartelle del file system da SQL Server che li gestirà come preferisce, dando semplicemente modo agli utenti di fare le query su questi oggetti come normali tabelle ma non ponendoli in un unico file di database ma dentro a delle cartelle organizzate sul file system permettendo anche di creare dei backup ad hoc dei soli dati modificati senza dover impazzire lato server.

Installer 24[4]

Siamo pronti all’installazione.

Installer 25[4]

L’installer fa un ulteriore verifica del sistema.

Installer 26[4]

Un ultimo controllo se tutto quello che volevamo fare è esattamente come volevamo.

Installer 27[4]

A questo punto non ci resta che aspettare e verificare se tutto va a buon fine. Al termine potrete usare Sql Management Studio per accedere al server e verificare che funzioni.

Configurazione dei protocolli di rete

Se al vostro server devono accedere applicazioni che si connettono utilizzando il client TCP o applicazioni che si connettono attraverso una Intranet, la prima cosa da fare è verificare che il firewall locale non blocchi la porta TCP usata da SQL Server. Dopodiché (o primadiché) è opportuno utilizzare l’utility di gestione dei servizi di Sql Server per verificare che i servizi siano attivi e per attivare i protocolli di rete server necessari.

Installer 28[4]

Cercate sulla cartella di installazione di SQL Server il configuration manager (oppure mettetelo sullo start menu come ho fatto io).

Installer 29[4]

Nella finestra apparirà quanto vedete qui sopra, selezionate la Sql Server Network Configuration e selezionate Protocols for MSSQLSERVER, questi sono i protocolli della Default Instance, se aveste più istanze o se aveste preferito installare un istanza nominata, l’elemento sarebbe chiamato Protocols for MSSQLSERVER\INSTANCENAME dove InstanceName è il nome dell’istanza.

Installer 30[4]

Selezionate il protocollo TCP/IP e abilitate anche il protocollo Named Pipes se dovete connettervi a questo server da computer diversi da quello dove il servizio è installato (anche se si tratta di virtual machine sullo stesso computer come ad esempio in una macchina di sviluppo).

Installer 31[5]

Sul tab IP Addresses della stessa finestra, potete trovare gli indirizzi IP e la porta usata da SQL Server, 1433 è la porta usata per l’istanza di default e può essere cambiata. Questa è la porta che dovete aprire sul firewall per permettere ad altri computer della rete di connettersi a questa macchina.

Direi che questo è tutto, se ci provate ed avete domande, quesiti, dubbi, potete scrivermi usando il modulo di contatto oppure chiedere sul forum Microsoft di SQL Server, dove vi sono MVP con competenze ben più grandi delle mie che risponderanno ad ogni domanda.