Az SQL Integrated authentication és a szigorú policy

(For English version, check here)

Már sokan találkoztak azzal a kellemetlen élménnyel, hogy amikor az SQL szerverhez SQL authenticationnel próbálnak csatlakozni, akkor az SQL azt mondja, hogy “Login failed for user ‘(null)’. Reason: Not associated with a trusted SQL Server connection”. Ennek a legtipikusabb oka az, hogy nincs beállítva a szerveren az SQL authentication, és nem mixed mode-ban van konfigurálva. Ezt általában elég könnyű kivédeni: az ember átpöttyinti a rádiógombot, aztán hadd szóljon.
Múltkoriban találkoztam a hibaüzenettel, egészen más körülmények között. Pár embernek nem működött a Windows integrated authentication egy bizonyos szerverre. Ugyanúgy a fenti hibaüzenetet kapták. Másoknak hiba nélkül működött. Elkezdtem agyalni, hogy mi lehet a hiba: első jelöltem az MTU volt, de mivel a tokenméret azonos volt (sőt, azoknak volt nagyobb, akiknek működött), el kellett vetnem ezt az ötletet. Aztán megnéztem, hogy tudnak-e csatlakozni pl. egy share-hez az adott gépen. Ez nem sikerült nekik. Megnéztem az eventlogot, és ezt láttam benne:

Event Type: Failure Audit
Event Source: Security
Event Category: Logon/Logoff
Event ID: 534
Date: 8/3/2008
Time: 3:04:30 PM
User: NT AUTHORITY\SYSTEM
Computer: SQL10
Description:
Logon Failure:
Reason: The user has not been granted the requested
logon type at this machine
User Name: erik
Domain: MYDOMAIN
Logon Type: 3
Logon Process: NtLmSsp
Authentication Package: NTLM
Workstation Name: ERIKPC

De ez meg mi? Megkérdeztem Gugli barátomat, aki azt mondta, hogy olvasott már róla… És azt írja az újság, hogy ez bizony network logon failure. Ekkor úgy döntöttem, hogy megnézem a local security policyt. Megnéztem, és azt láttam, hogy az Access this computer from the network csak a lokáladminoknak van engedélyezve. Itt egy kicsit vertem a fejemet a falba, hogy miért nem fedeztem fel előbb ezt a mintázatot, de azért gyorsan beállítottam, hogy a Users is elérje, és befrissítettem a policyt. És működött.
Annyi történt, hogy mivel a parasztok userek nem voltak felhatalmazva, hogy elérjék a gépet hálózaton át, amikor csatlakoztak a géphez, az oprendszer kiröhögte őket, majd összetépte és kidobta a tokenjüket, így az SQL Serverhez már semmi nem jutott el a személyazonosságukból. Megint tanultam valamit.

Leave a comment