agosto 2007 - Posts

Serie di articoli su SQL Express

Marcin Policht, già autore di una serie di articoli su SSIS di cui avevo parlato in un vecchio post (nel frattempo gli articoli su SSIS sono diventati 50 Yes) è al lavoro per un'altra serie, questa volta dedicata a SQL Server Express.

Per ora sono presenti 5 articoli di cui i primi 2 sono a carattere introduttivo ed espongono rispettivamente le differenze tra le diverse edizioni di SQL Server e le caratteristiche e limitazioni di SQL Express. Gli altri sono dedicati all'installazione, all'utilizzo del Surface Area Configuration (sono sempre numerose le richieste nei newsgroup/forum da parte degli utenti che "dimenticano" di abilitare le connessioni remote) e alla configurazione delle proprietà di rete ed in particolare il ruolo del servizio SQL Server Browser.

Si tratta certamente di un ottimo punto di partenza per coloro che si avvicinano a SQL Server ed a cui indirizzerò gli utenti che, nelle varie community, chiedono informazioni introduttive su SQL Server Express. Non so se si tratta di una mia percezione ma sono sempre di più gli utenti che affrontano il salto da Access a SQL Server...

Bye

 

Posted by lbianchi with 1 comment(s)
Filed under:

Impostare la rete in VMWare: VMnetcfg.exe

Chi utilizza VMWare, sia nella versione Workstation che in quella Player, sa che la procedura di setup aggiunge 2 schede di rete virtuali nella classe di indirizzi 192.168.x.0/24 dove x è un numero casuale, per ciascuna delle 2 schede, generato in fase di installazione. Una di queste reti viene creata per consentire il collegamento "host only" tra host e guests; l'altra per il NAT tra la rete dell'host e questa rete privata utilzzata da VMWare.
Avendo diversi PC con installate varie versioni di VMWare (Workstation o solo Player) trovavo scomodo spostare alcune macchine da un PC all'altro quando era importante mantenere una certa architettura di rete con alcuni indirizzi statici e/o registrazioni statiche nei DNS o nei file hosts. Si pensi ad esempio ad un dominio dove i DC devono avere un indirizzo IP fisso, un cluster realizzato con macchine virtuali o altre esigenze per le quali 2 o più server devono essere configurati per interagire tra loro sulla base di indirizzi statici (ad esempio il database mirroring o il service broker).

Per risolvere queste esigenze è possibile utilizzare il tool "Manage Virtual Network" che la procedura di setup della versione Workstation aggiunge nel gruppo di programmi di VMWare (chi utilizza VMWare Player deve accedere alla cartella di installazione e cercare vmnetfcfg.exe). In questo modo ho impostato la stessa rete per tutte le postazioni su cui utilizzo VMWare rendendo più agevole portare una VM da un host ad un altro.

Bye


 

Posted by lbianchi with no comments
Filed under:

Schedulatore per SQL Express

Una delle grosse pecche di SQL Server Express è l'assenza di SQL Server Agent. Mi stanno bene le limitazioni sull'utilizzo delle risorse hw, il limite sulle dimensioni del database, ecc ma SQL Server Agent ci voleva proprio. Magari limitato ad eseguire solo backup, ricostruzione degli indici e altri comandi ben definiti, ma un minimo di funzionalità doveva esserci.

Altrettanto vero che si può ovviare utilizzando il task scheduler del sistema operativo oppure una soluzione basata sull'utilizzo della utility sqlmaint come riportato in questo articolo. In teoria esiste anche la possibilità di utilizzare il Service Broker come riportato nel blog di Roger Wolter ma questa è una soluzione didattica per apprendere le funzionalità del Service Broker e la vedo difficilmente implementabile in un ambiente reale.

Se fate una ricerca troverete soluzioni di terze parti che si propongono di ovviare all'assenza dell'agent in SQL Server Express ma la possibilità di utilizzare il CLR può essere sfruttata per costruirsi un proprio schedualtore. E' quello che ha fatto un certo Danilo Corallo (sarà mica italiano?) che ha realizzato questo interessante progetto liberamente scaricabile.

Resto del parere che avrei preferito non vedere le User Instance ma un Agent nativo con tutte le eventuali limitazioni del caso...

Bye

 

Posted by lbianchi with no comments
Filed under: ,

Stiamo usando Kerberos?

Utilizzando l'autenticazione integrata per accedere ad una istanza di SQL Server può capitare che nell'application log vengano registrati una serie di eventi simili a questo riportato di seguito

Event Type: Information
Event Source: MSSQLSERVER
Event Category: (2)
Event ID: 26037
Date:  23/08/2007
Time:  6.08.15
User:  N/A
Computer: SCRMIPSQLV1
Description:
The SQL Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0x2098, state: 15. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies.

Benchè si tratti di un messaggio puramente informativo è bene accertare le cause per le quali l'autenticazione avviene utilizzando il protocollo NTLM anzichè il più recente (e sicuro) Kerberos. Le cause sono da ricercare essenzialmente nel fatto che in Active Directory non è stato registrato il Service Principal Name (SPN) relativo all'istanza in questione e si rende necessario registrarlo manualmente utilizzando il tool SetSPN.exe, prelevabile dal Resource Kit di Windows Server 2000/2003, come indicato in questo articolo della kb.

Una volta definito il SPN è possibile interrogare la sys.dm_exec_connections e a partire da questo momento, per tutte le nuove connessioni, il campo auth_scheme dovrebbe restituire il valore 'kerberos'.
Se la DMV ci rivela che alcune connessioni utilizzano ancora il protocollo NTLM ciò potrebbe dipendere dal fatto che il client ed il server sono separati da un apparato di rete che filtra in qualche modo le porte utilizzate da kerberos e/o che l'utente ed il database server appartengono a domini di foreste differenti.

Bye 


 

Posted by lbianchi with no comments

La colpa è sempre di Windows

Mi pareva strano che a seguito dei ben noti problemi di Skype della scorsa settimana non ci fosse ancora stato qualcuno che desse la colpa a Microsoft.

Ma anche questa volta qualche ben informato ha trovato il modo di riversare su Windows la colpa dell'accaduto. Non si tratta di chiacchiere da bar ma di uno dei più autorevoli quotidiani italiani, La Repubblica, che in questo articolo punta il dito verso Microsoft. Interessante leggere tutto l'articolo dove interviene anche un "esperto" del CNR che pone il dubbio sul comunicato ufficiale in cui skype ammette un bug nel software che gestisce il bilanciamento del carico sui loro server.

Ognuno ha l'informazione che si merita... [:'(]

 

Posted by lbianchi with 3 comment(s)
Filed under:

SQL Server 2005 Service Manager

Ogni tanto nei newsgroup/forum compare qualche richiesta dove un utente segnala che a seguito dell'aggiornamento a SQL Server 2005 non si trova più l'icona del Service Manager che l'installazione di SQL Server 2000 aggiungeva nella system tray.

Personalmente non ho mai sentito l'esigenza di avere l'icona che mi notificasse lo stato del servizio, ma evidentemente c'è chi ne sente la mancanza. Jasper Smith ha reso disponibile, adesso anche per Vista, un Service Manager per SQL Server 2005 che è possibile scaricare gratuitamente da questo link.

Bye

 

Posted by lbianchi with no comments
Filed under:

Performance Dashboard in SQL Server 2005 SP2

Per chi ancora non avesse avuto la possibilità di farne la conoscenza, segnalo questo articolo che vi potrà introdurre ai Performance Dashboard e, più in generale, alla possibilità di definire dei Custom Reports da visualizzare direttamente in SSMS.

Bye

 

Posted by lbianchi with no comments
Filed under:

Permettere ai non-sysadmin di modificare i DTS

In SQL Server 2000 è presente l'utente guest nel database msdb. Questo permette a qualunque login dell'istanza di creare job e DTS ed è per questo motivo che una delle prime cose da fare, almeno nelle istanze di produzione, è quella di rimuovere guest dal database msdb. In SQL Server 2005 l'utente è ancora presente nel database msdb ma dispone di privilegi minori che in SQL Server 2000.

Sia in SQL Server 2005 (con le impostazioni di default) che in SQL Server 2000 dopo aver rimosso l'utente guest da msdb gli utenti non-sysadmin non sono in grado di visualizzare i DTS e tantomeno di apportarvi modifiche. Se questo è auspicabile in un ambiente di produzione, può essere un problema negli ambienti di sviluppo dove non si vogliono dare privilegi troppo elevati agli sviluppatori ma al tempo stesso il DBA non vuole e non può stare dietro alle modifiche ai DTS.

Per risolvere il primo problema, ovvero dare la possibilità a tutti di visualizzare ed aprire i DTS dell'istanza è sufficiente concedere il permesso di SELECT sulla tabella sysdtspackages contenuta nell'msdb (attenzione, non alla sysdtspackages90 perchè questa contiene invece i pacchetti SSIS che sono stati salvati in SQL Server). Una volta aperto e modificato il DTS da parte di un non-sysadmin quando si proverà a salvarlo si riceverà un altro messaggio il quale informa che solo un sysadmin oppure l'owner del pacchetto può apportarvi modifiche. Questa volta non è un problema di permessi sull'istruzione che salva il pacchetto, ovvero la sp_add_dtspackage ma, analizzando il codice della stored procedure, possiamo vedere che ad un certo punto viene fatto un check dove viene verificato che l'utente corrente sia un sysadmin oppure il proprietario del pacchetto e, in caso negativo, viene restituito l'errore 14586. Commentando o modificando questa porzione di codice possiamo estendere anche agli sviluppatori la possibilità di apportare modifiche ai DTS.

Bye

 

Posted by lbianchi with no comments

SQL Server 2008 July CTP

E' stata rilasciata la CTP di luglio (CTP4) di Katmai.

Tra le principali novità i tanto attesi datatype DATE e TIME, il datatype HierarchyID (utile per costruire alberi gerarchici) e, in tema di database mirroring, la possibilità di riparare una o più pagine danneggiate sul principal portandole indietro dal mirror (automatic bad page repair), la possibilità di comprimere il traffico di mirror (log stream compression) e altri miglioramenti sulle performance e sulla possibilità di monitoraggio e diagnostica utilizzando dei contatori di Performance Monitor e di DMV.

Maggiori info su connect.

Bye