Recover SA Password with PSTools – Troubleshooting Guide

permissionsSecuritysql serversql server 2014

I'm on a new company, and the first thing I saw is that they don't even know how many instances they have. they don't have passwords and the old DBA had no Idea what he was doing.

long story short, I could manage to create my own sysadmin account in almost every server ( I will move all databases to only 1 or 2 instances ) but there are some that I just can't.

In this Link by mssqltips there is a tool called PsExec. Following the tutorial I could run the program and connect to SQL Server with NT AUTHORITY\SYSTEM. But it's not working. NT AUTHORITY\SYSTEM is Public and I can't add my account with sysadmin. Does this program runs only with SQL 2008?

There's no way to stop servers because our databases aew running for all over Brazil.

Countless posts here, but almost everyone needs to restart SQL Server.

How do you reset the sa password?

How to add sysadmin to user in SQL Server 2008 when no sysadmin accounts exist ( This one says about the program, but as I said, it's not working for me (he is using 2008 )).

enter image description here

In this video he's using the -M method. Does someone already tested it on SQL Server 2014? I would like to know and, I will try.

I can connect with the NT AUTHORITY\SYSTEM user but when I try to create a sysadmin login or change sa password, it says I have no rights to do that. And then, looking at the nt rights, it's public. I could change the sa login with the -m trick on my machine, but I would like something that does not require to shutdown the SQL.

Best Answer

Here is a technet article that has the detailed steps.

In a nutshell you need to start SQL server in single user mode and connect using sqlcmd to add your account. This should get you what you need as long as you have admin rights at the OS level.

One note is that if the sqlagent is configured to start up automatically you should disable that before you start SQL server in single user mode so the connection isn't taken by the sqlagent.