Iteam
GitHub

Glömt lösenordet till SQL Server?

I gamla versioner av SQL Server skapades alltid ett konto med högsta administratörsnivå (sysadmin) med namnet sa och tomt lösenord. Det var minst sagt lite av en säkerhetsrisk, så i senare versioner skapas visserligen sa-kontot men det är antingen avstängt eller kräver att man ger det ett lösenord. I SQL Server 2005 och 2008 så läggs den installerande användaren automatiskt i sysadmin-gruppen (exakt vilket konto etc. beror på om det är Windows Server eller inte, om den är domänsansluten etc.).

Av ett antal orsaker kan man hamna i läget att man inte har tillgång till något konto som är sysadmin. I mitt fall hände det på min /Utvecklingsmaskin där kontot jag installerat SQL Server under hade gått sönder. Jag hade kunnat installera om SQL Server förstås, men i en produktionsmiljö är det sällan ett bra alternativ. Som tur är så finns ett sätt att starta SQL Server i ”felsäkert läge”. Man kan starta SQL Server isingle user mode, vilket gör att den första användaren som ansluter blir sysadmin.

Gör så här:

  1. Stäng av SQL Agent (annars riskerar den att vara den första som ansluter och blir sysadmin)
  2. Öppna SQL Server Configuration Manager
  3. Öppna trädet SQL Server Services. Högerklicka på din SQL Server-instans.
  4. På fliken advanced, lägg till ;-m sist på raden startup parameters
  5. Starta om SQL-tjänsten

Nu är servern isingle user mode, så nu kan du ansluta och ändra i rättigheter på konton, databaser och tabeller. Vad du än gör: kom bara ihåg att gå tillbaka till det vanliga läget när du är klar!

För den som kör mysql finns ett liknande läge som kringår all säkerhet som jag skrev om i en annan blogg för länge sen.

Anders Bornholm
2009-03-02