Este é um conteúdo traduzido por máquina que os membros da comunidade podem editar. Incentivamos você a melhorar a tradução clicando no link Editar associado a qualquer sentença abaixo.
SQL Server 2012: Password emergency
If the unthinkable happens and you forget your SQL Server password, there are ways to get back into the system.
Saleem Hakani
You’re a proud and a trusted DBA at your organization.
You’re responsible for maintaining and updating several important services running on SQL Servers in your production environment.
You’ve decided to perform the following steps—which are the kind of best practices any solid DBA would take—to secure your company’s SQL Servers from any unauthorized access:
-
You’ve removed any and all built-in administrator accounts from SQL Server logins.
-
You’ve removed all users (except System Administrator, or SA) that were part of the SYSADMIN server role (including any Windows Accounts and SQL Server logins).
-
You’ve set the SA account password to something extremely complex that would be hard for anyone to guess or remember.
-
For day-to-day operations on SQL Server, you use your domain user account, which has Database Owner (DBO) permissions on user databases but doesn’t have SYSADMIN privileges on the system.
-
You haven’t documented the SA password anywhere to prevent others from knowing it.
After all, it’s not a good practice to document the password.
Because you’ve set the SA password to be so complex—and you’ve been using your domain account and not the SA account for all your daily database-related activity on SQL Server—the unthinkable has happened.
You forgot your SQL Server SA password.
You were the only person who knew the SA password in your team.
Now you don’t remember what it was and you need to make some server-level configuration changes to your production SQL Server boxes.
What are you going to do now?
Here are some options:
-
Try logging in as SA with all possible passwords you have in your mind.
-
Look for the SA password on your computer hard drive or in your e-mails (you may have stored it in some file, which is a bad practice, but can be helpful).
-
Try to restore the Master database from database backup.
This won’t help in the long run because you’ll still encounter the same issue if you don’t remember the SA password.
-
Rebuild the Master database.
This is only marginally helpful, as you’ll lose all system- and server-level configurations and settings including logins, permissions and any server-level objects.
-
Re-install SQL Server 2012 and attach all user databases.
This may not work, as you may experience the same issues that you would experience with rebuilding the Master database.
Assume all your attempts to log in to the system using the SA password have failed.
Now it’s time for you to call for reinforcements: the Microsoft product support services team.
Here’s what they might tell you to do:
This is a backdoor to SQL Server 2012 that will help you gain SYSADMIN access to your production SQL Servers.
However, this means your Windows account will have to be a member of the local administrators group on Windows Servers where SQL Server 2012 services are running.
SQL Server lets any member of a Local Administrators group connect to SQL Server with SYSADMIN privileges.
Here are the steps to take control of your SQL Server 2012 as an SA:
|
1.
|
Start the SQL Server 2012 instance using single-user mode from the command prompt by launching the command prompt as an administrator.
You can also start SQL Server 2012 using minimal configuration, which will also put SQL Server in single-user mode.
|
|
2.
|
From the command prompt (Run as Administrator), type: SQLServr.Exe –m (or SQLServr.exe –f) and start the SQL Server 2012 database engine.
Make sure you don’t close this command prompt window.
You can locate SQLServr.exe in the Binn folder of your environmental path.
If you don’t have a SQL Server 2012 Binn folder in your environmental path, you can always navigate to the Binn folder of your SQL Server 2012 machine.
Usually the Binn folder is located at C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>.
|
|
3.
|
Once the SQL Server 2012 service has started in single-user mode or with minimal configuration, you can now open up another command-line window as an administrator and use the SQLCMD command from the command prompt to connect to the SQL Server 2012 instance:
|
SQLCMD –S <Server_Name\Instance_Name>
Example: SQLCMD –S "SALEEMHAKANI"
| |
You will now be logged in to SQL Server.
Keep in mind that you’re logged in as an Admin on the SALEEMHAKANI SQL Server 2012 instance.
|
|
4.
|
Once you’re logged in to SQL Server 2012 using SQLCMD from the command prompt, you have the option of creating a new account and granting it any server-level permission.
Create a new login in SQL Server 2012 called “Saleem_SQL” and then add this account to the SA server role.
To create a new login from the command prompt after performing Step 3, use the following:
|
1> CREATE LOGIN '<Login_Name>' with PASSWORD='<Password>'
2> GO
1> CREATE LOGIN SQL_SALEEM WITH PASSWORD='$@L649$@m'
2> GO
| |
Once you’ve created the new login “SQL_SALEEM,” add this login to the SA server role on the SQL Server 2012 instance.
From the same command-prompt window, execute the following statement:
|
1> SP_ADDSRVROLEMEMBER '<Login_Name>','SYSADMIN'
2>go
| |
To add an existing login to the SYSADMIN server role, execute the following:
|
1> SP_ADDSRVROLEMEMBER '<LOGIN_NAME>','SYSADMIN'
2> GO
1> SP_ADDSRVROLEMEMBER SQL_SALEEM,'SYSADMIN'
2> GO
| |
The previous operation will take care of granting SYSADMIN privileges to the “SQL_SALEEM” login.
|
|
5.
|
Once you’ve successfully performed these steps, the next step is to stop and start SQL Server services using regular startup options.
This time you won’t need –f or –m.
|
|
6.
|
Log in to the SQL Server 2012 management studio.
You could also log in from the command prompt using the “SQL_SALEEM” account and its respective password.
You now have SA access to your SQL Server 2012 instance.
You may now reset the SA password and take control of your production SQL Server boxes.
It’s perfectly normal to forget your password from time to time, but that doesn’t mean it’s any less of a hassle.
These emergency steps should get you up and running without too much scrambling or downtime.
|
Saleem Hakani
is a principal architect at Microsoft with more than 18 years of experience.He has worked with SQL Server since 1992 and has worked on numerous large-scale Microsoft services as an engineer and architect over the last seven years, including Hotmail, Bing and MSN.Hakani leads the worldwide SQL Server Community for Microsoft employees, and is a technical presenter for various Microsoft events including TechReady, SQLFEST, SQL-SCHOOL and SQLPASS.
Related Content
|
SQL Server 2012: Emergência de senha
Caso ocorra algum imprevisto e você esqueça a senha do SQL Server, há outras formas de retornar ao sistema.
Saleem Hakani
Você é um orgulho e um DBA confiável em sua organização.
Você é responsável pela manutenção e atualização de diversos serviços importantes em execução em servidores SQL em seu ambiente de produção.
Você decidiu realizar as etapas a seguir — que são as melhores práticas levaria qualquer DBA sólido — para proteger sua empresa do servidores SQL de qualquer acesso não autorizado:
-
Você removeu a contas de administrador interna todas de logons do SQL Server.
-
Você removeu todos os usuários (exceto o administrador do sistema ou SA) que faziam parte da função de servidor SYSADMIN (incluindo qualquer logons de contas do Windows e SQL Server).
-
Você definiu a senha da conta SA como algo extremamente complexo que seria difícil para alguém adivinhar ou lembrar.
-
Para as operações diárias no SQL Server, você pode usar sua conta de usuário de domínio, que tem permissões de banco de dados proprietário (DBO) em bancos de dados do usuário, mas não tem privilégios SYSADMIN no sistema.
-
Você ainda não documentado a senha do SA em qualquer lugar para impedir que outros o sabê-lo.
Afinal, não é uma boa prática para documentar a senha.
Porque você definir a senha SA ser tão complexa — e você estiver usando sua conta de domínio e não a conta SA para todos os seu banco de dados-relacionados atividade diária no SQL Server — o impensável aconteceu.
Você esqueceu sua senha do SQL Server SA.
Você era a única pessoa que sabia a senha do SA em sua equipe.
Agora você não se lembra o que era e você precisará fazer algumas alterações de configuração no servidor-nível para suas caixas de SQL Server de produção.
O que você vai fazer agora?
Aqui estão algumas opções:
-
Tente fazer login como SA com todas as senhas possíveis que você tem em sua mente.
-
Procure a senha do SA no seu disco rígido de computador ou em seus e-mails (você pode ter armazenado em algum arquivo, que é uma má prática, mas pode ser útil).
-
Tente restaurar o mestre de banco de dados de backup de banco de dados.
Isso não vai ajudar a longo prazo, porque você ainda vai encontrar o mesmo problema, se você não se lembra a senha SA.
-
Reconstruir o mestre banco de dados.
Isso é apenas marginalmente úteis, como você vai perder todas as configurações de nível de servidor e de sistema e configurações, incluindo logins, permissões e quaisquer objetos de nível de servidor.
-
Re-instalar o SQL Server 2012 e anexar todos os bancos de dados do usuário.
Isso pode não funcionar, como você pode ter os mesmos problemas que você experimentaria com reconstruir o mestre de banco de dados.
Assuma todas suas tentativas de fazer logon sistema usando a senha SA falharam.
Agora é hora de você chamar por reforços: serviços equipe de suporte de produto da Microsoft.
Aqui está o que eles podem dizer-lhe fazer:
Este é um backdoor para SQL Server 2012 que irá ajudá-lo a acessar sua produção servidores SQL SYSADMIN.
No entanto, isso significa que sua conta do Windows vai ter que ser um membro do grupo Administradores locais em servidores Windows que estão executando o SQL Server 2012 serviços.
SQL Server permite que qualquer membro de um grupo de administradores locais se conectar ao SQL Server com privilégios SYSADMIN.
Aqui estão os passos para assumir o controle de seu servidor de SQL 2012 como uma SA:
|
1.
|
Inicie a instância do SQL Server 2012 usando o modo de usuário único no prompt de comando, lançando o prompt de comando como administrador.
Você também pode iniciar o SQL Server 2012 usando configuração mínima, que também irá colocar o SQL Server no modo de usuário único.
|
|
2.
|
No prompt de comando (executar como administrador), digite: SQLServr.Exe – m (ou SQLServr.exe – f) e iniciar o mecanismo de banco de dados do SQL Server 2012.
Certifica-se de que você não fechar esta janela de prompt de comando.
Você pode localizar o SQLServr.exe na pasta Binn do seu caminho ambiental.
Se você não tiver uma pasta Binn de 2012 do SQL Server em seu caminho ambiental, você sempre pode navegar para a pasta Binn seu computador SQL Server 2012.
Geralmente a pasta Binn está localizada em C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn >.
|
|
3.
|
Uma vez o SQL Server 2012 serviço iniciado em modo de usuário único ou com configuração mínima, você pode agora abrir outra janela de linha de comando como administrador e use o comando SQLCMD no prompt de comando para se conectar à instância do SQL Server 2012:
|
SQLCMD –S <Server_Name\Instance_Name>
Example: SQLCMD –S "SALEEMHAKANI"
| |
Você vai agora ser logado para SQL Server.
Tenha em mente que você está conectado como um administrador na instância SALEEMHAKANI SQL Server 2012.
|
|
4.
|
Uma vez que você está conectado ao SQL Server 2012 usando SQLCMD no prompt de comando, você tem a opção de criar uma nova conta e concedendo-lhe qualquer permissão de nível de servidor.
Criar um novo logon no SQL Server 2012, chamado "Saleem_SQL" e, em seguida, adicione esta conta para a função de servidor de SA.
Para criar um novo login no prompt de comando depois de executar a etapa 3, use o seguinte:
|
1> CREATE LOGIN '<Login_Name>' with PASSWORD='<Password>'
2> GO
1> CREATE LOGIN SQL_SALEEM WITH PASSWORD='$@L649$@m'
2> GO
| |
Depois de criar o novo login "SQL_SALEEM", adicione este logon para a função de servidor de SA na instância do SQL Server 2012.
Partir da mesma janela de prompt de comando, execute a seguinte instrução:
|
1> SP_ADDSRVROLEMEMBER '<Login_Name>','SYSADMIN'
2>go
| |
Para adicionar um logon existente para a função de servidor SYSADMIN, execute o seguinte:
|
1> SP_ADDSRVROLEMEMBER '<LOGIN_NAME>','SYSADMIN'
2> GO
1> SP_ADDSRVROLEMEMBER SQL_SALEEM,'SYSADMIN'
2> GO
| |
A operação anterior vai cuidar-se de conceder privilégios SYSADMIN para o login "SQL_SALEEM".
|
|
5.
|
Uma vez que você já realizou com sucesso estas etapas, o próximo passo é parar e iniciar serviços do SQL Server usando opções de inicialização normal.
Desta vez você não vai precisar – f ou – m.
|
|
6.
|
Acessar o 2012 de SQL Server management studio.
Você também poderia entrar prompt de comando usando a conta de "SQL_SALEEM" e sua respectiva senha.
Agora você tem acesso de SA a instância do SQL Server 2012.
Agora, você pode redefinir a senha SA e assumir o controle da sua produção de caixas de SQL Server.
É perfeitamente normal para esquecer a sua senha de vez em quando, mas isso não significa que ele é todo em menos de um aborrecimento.
Estas etapas de emergência devem te funcionando sem demais lutando ou tempo de inatividade.
|
Saleem Hakani
é um arquiteto principal da Microsoft com mais de 18 anos de experiência.Ele trabalha com o SQL Server desde 1992 e já trabalhou em inúmeros serviços de Microsoft em larga escala como um engenheiro e arquiteto nos últimos sete anos, incluindo Hotmail, Bing e MSN.Hakani leva a comunidade mundial de servidor de SQL para funcionários da Microsoft e é um apresentador de técnico para vários eventos da Microsoft TechReady, SQLFEST, SQL-escola e SQLPASS.
Conteúdo relacionado
|
|
TechNet Features
TechNet SubscriptionsNão é assinante do TechNet? Avalie softwares da Microsoft e planeje implantações com segurança com uma assinatura do Microsoft TechNet.
|