Artigo: 263968 - Última revisão: sexta-feira, 26 de Outubro de 2007 - Revisão: 9.2

A instalação do Service Pack pode guardar a palavra-passe do administrador de sistema num ficheiro

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Se utilizar a autenticação do SQL Server, também conhecida como Standard Security (segurança padrão), para instalar os produtos listados na secção "Aplica-se a", a palavra-passe do administrador de sistema (sa) poderá ser armazenada em texto simples ou num formato legível encriptado nos ficheiros de configuração do SQL Server.

Do mesmo modo, se configurar os serviços do SQL Server utilizando uma conta de domínio, a palavra-passe da conta de domínio poderá ser escrita no ficheiro Setup.iss num formato encriptado fraco.

Nota: o Microsoft SQL Server 2000 Service Pack 3 (SP3) ou versões posteriores utilizam a encriptação nas palavras-passe incluídas nestes ficheiros. Esta encriptação ajuda a melhorar a segurança. No entanto, recomendamos que remova as palavras-passe encriptadas ou os ficheiros de instalação que contêm as palavras-passe, se já não forem necessários.

SQL Server 7.0

A palavra-passe sa ou a palavra-passe da conta de domínio é guardada em texto simples ou num formato encriptado fraco no ficheiro Setup.iss, na pasta %Windir%.

Nota: a pasta %Windir% também poderá variar se a instalação original tiver sido concluída através de uma ligação do servidor de terminais. Uma cópia deste ficheiro será criada na pasta %Unidade_do_sistema%\MSSQL7\Install\ou\Tools quando o programa de configuração for concluído.

As informações relativas à palavra-passe poderão também estar incluídas no ficheiro Sqlstp.log e no ficheiro Sqlsp*.log. Estes ficheiros existem na pasta %Windir% e na pasta Temp. A pasta %Windir% também poderá variar se a instalação original tiver sido concluída através de uma ligação do servidor de terminais. Nos computadores baseados no Microsoft Windows 2000, a pasta Temp encontra-se nas Variáveis de ambiente no separador Avançadas em Sistema no Painel de controlo.

SQL Server 2000

A palavra-passe sa ou a palavra-passe da conta de domínio é guardada num formato encriptado, mas legível nos ficheiros Sqlstp.log, Sqlsp.log e Setup.iss na pasta Unidade:\Programas\Microsoft SQL Server\Mssql\Install de uma instalação predefinida. Note que a pasta Mssql pode ser MSSQL$NomeInstância numa denominada instalação de instância. O ficheiro Setup.iss do SQL Server 2000 utiliza a lista de controlo de acesso. Por conseguinte, apenas os administradores do Windows NT e administradores do SQL Server têm acesso ao ficheiro.

O SQL Server 2000 também inclui a capacidade de se instalar de forma nativa num servidor com clusters do Windows. Os ficheiros de registo do programa de configuração remoto de clusters são Remsetup.ini e um ficheiro de scripts de instalação remota semelhante aos ficheiros Setup.iss de cada nó remoto. Estes ficheiros de scripts de instalação remota são denominados NomeComputadorRemoto_ NomeInstância.iss. Estes ficheiros são também armazenados na pasta %Windir% e normalmente são eliminados quando o programa de configuração é concluído. No entanto, é possível que estes ficheiros não sejam eliminados se ocorrer um erro na configuração de clusters.

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).

Resolução

Para resolver este problema, utilize um dos seguintes métodos:
  • Utilize a autenticação de segurança do Microsoft Windows NT para instalar a versão original do SQL Server ou um Service Pack. Em seguida, utilize a conta LocalSystem quando configurar os serviços do SQL. Este método evita o problema.
  • Altere a palavra-passe sysadmin (sa) do SQL Server e a palavra-passe da conta de domínio do serviço do SQL depois de instalar o Service Pack.
  • Depois de instalar os produtos listados na secção "Aplica-se a", tem de executar o utilitário Killpwd.exe para limpar os ficheiros de configuração. O utilitário Killpwd.exe funciona com o SQL Server 7.0 e o SQL Server 2000.

    Nota: a Microsoft publicou anteriormente uma actualização para o SQL Server 7.0 (MSDE 1.0) Service Pack 2 e para o SQL Server 7.0 Service Pack 3. No entanto, não tem de utilizar as actualizações porque o utilitário Killpwd.exe actualizado substitui as actualizações anteriores.

Instruções relativas ao utilitário Killpwd

A Microsoft criou um utilitário da linha de comandos, Killpwd.exe, para procurar os ficheiros de configuração do Microsoft SQL Server relativos à palavra-passe de início de sessão sa. Se o utilitário Killpwd.exe localizar uma ocorrência da palavra-passe sa, a palavra-passe sa será removida do ficheiro de registo numa operação de modo básico. Por predefinição, a ferramenta procura os ficheiros Sqlsp.log, Sqlstp.log e Setup.iss nas pastas %Windir%\Temp e %Temp%, em que %Windir% e %Temp% são variáveis de ambiente definidas pelo Microsoft Windows.

A Microsoft actualizou o utilitário Killpwd.exe de modo a incluir mais localizações para os ficheiros de configuração criados por instalações remotas e de clusters. Em determinados cenários, os nomes ou caminhos destes ficheiros poderão ser diferentes das predefinições. Seguem-se as variantes:
  • As instalações com clusters criarão ficheiros de configuração em todos os nós. Se pretender executar o utilitário a partir de um único nó, terá também de especificar os caminhos UNC para as unidades nos nós remotos, caso pretenda remover esses ficheiros. Em alternativa, pode executar o utilitário a partir de cada nó para limpar os ficheiros de configuração locais.
  • Os ficheiros remotos criados para configuração de clusters seguem o seguinte formato:
    NomeComputadorRemoto_NomeInstância.iss
    Se o nome do computador tiver sido modificado ou se uma instância tiver sido removida, por predefinição, o utilitário não saberá procurar ficheiros com estes nomes de ficheiro.
  • Se o nome do cluster do Windows tiver sido alterado, os ficheiros de registo terão os nomes de ficheiro antigos. Neste cenário, por predefinição, o utilitário não saberá procurar ficheiros com estes nomes de ficheiro.
  • As ligações do servidor de terminais utilizam pastas %Temp% e %WinDir% diferentes. Estas pastas poderão variar consoante o ID de utilizador e variáveis de ambiente.
  • A configuração remota pode utilizar a localização %Temp% local em vez de armazenar ficheiros no computador em que está a ser efectuada a instalação do SQL Server. O utilitário Killpwd não consegue determinar esta situação e não consegue saber qual o caminho remoto para procurar os ficheiros de registo.
Transfira e execute o utilitário Killpwd.exe mais recente a partir da hiperligação existente neste artigo. A nova versão inclui a capacidade de especificar localizações diferentes das localizações predefinidas para localizar todas as versões possíveis destes ficheiros. Também pode especificar localizações remotas.

Para obter mais informações sobre estes ficheiros de registo e instalações automáticas, consulte a documentação do SQL Server. Se criar um ficheiro *.iss para efectuar instalações automáticas, terá de copiar o ficheiro *.iss para uma localização com segurança melhorada, excepto para pastas pesquisáveis.

Nota: estes ficheiros de informações de configuração também não serão eliminados quando remover o SQL Server. Este comportamento ocorre por predefinição. Este comportamento permite resolver problemas relacionados com falhas numa instalação, caso tenha forçado a reposição, e permite utilizar um ficheiro ISS para reinstalar esta ou outras instâncias. Neste caso, não será possível tirar partido desta instância do SQL Server. No entanto, a natureza das palavras-passe é de tal forma que poderá ter utilizado a mesma palavra-passe para outra instância do SQL Server que ainda não tenha sido removida.

Para executar o utilitário Killpwd.exe utilize um dos métodos que se seguem:
  • Faça duplo clique em Killpwd.exe.
  • Execute o Killpwd.exe numa linha de comandos.

    Quando executa o Killpwd.exe numa linha de comandos, recebe mais informações.

    Nota: numa linha de comandos, pode utilizar os seguintes parâmetros:

    Informações de ajuda
    Killpwd.exe /?
    Para especificar um ficheiro e caminho de procura não predefinido
    Killpwd.exe CaminhoNome_do_ficheiro
Nota: no SQL Server 2000, tem de especificar a localização do ficheiro Setup.iss caso pretenda remover ocorrências da palavra-passe sa. O ficheiro Setup.iss do SQL Server 2000 está localizado na pasta Unidade:\Programas\Microsoft SQL Server\Mssql\Install de uma instalação predefinida. Note que a pasta Mssql pode ser MSSQL$NomeInstância. Se pretende utilizar o ficheiro Setup.iss posteriormente para efectuar uma instalação automática do SQL Server, não execute o Killpwd.exe no ficheiro Setup.iss.

Poderá receber as seguintes mensagens:
There was an error initialing the administrator SID.
There was an error getting token information.
There was an error opening the process token.
There was an error retrieving the current process module information.
There was an error retrieving the program file information.
Invalid Argument : %s
Invalid path : %s
To perform a custom scan both the path (/p) and file (/f) must be specified.
You must be an administrator to run this tool to ensure that all generated files are accessible.
There was an error retrieving the registry key Software\\Microsoft\\MSSQLServer\\ClientSetup\\SqlPath.
When scanning using the /N option the search match number can be larger than a normal scan because some search strings are substrings of others. In a normal scan the passwords are removed as the search progresses so similar search strings won't match the same string multiple times.
Memory allocation failure. Exiting.
Error getting the next file from the file search.
There was an error enumerating the nodes of the cluster.
Cluster name is longer than the internal buffer supplied.
There was an error opening file %s
There was an error getting the position within file %s
There was an error setting the position within file %s
There was an error retrieving the computer name.
There was an error retrieving the system directory.
There was an error retrieving the windows directory.
There was an error processing the Windows system directory %s.
There was an error retreiving the TEMP environment variable.
There was an error retrieving the registry key Software\\Microsoft\\MSSQLServer\\Setup\\SqlPath.v

Passos para executar o utilitário Killpwd.exe

Para executar o utilitário Killpwd.exe, siga estes passos:
  1. Transfira e extraia o Killpwd.exe.

    O ficheiro que se segue está disponível para transferência a partir do centro de transferências da Microsoft:
    Reduzir esta imagemExpandir esta imagem
    Transferir
    Transferir o pacote Killpwd.exe agora. (http://www.microsoft.com/downloads/details.aspx?FamilyId=7BDA4AE4-E287-4A6B-86E4-9AFDB3EA26C9&displaylang=en) Data de edição: 14 de Junho de 2005

    Para obter mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    119591  (http://support.microsoft.com/kb/119591/ ) Como obter ficheiros de suporte da Microsoft a partir de serviços online
    A Microsoft procedeu à detecção de vírus neste ficheiro. A Microsoft utilizou o software de detecção de vírus mais actual, disponível na data de publicação do ficheiro. O ficheiro está armazenado em servidores com segurança melhorada, que ajudam a impedir quaisquer alterações não autorizadas ao ficheiro.
  2. Execute o ficheiro executável de extracção automática para extrair o pacote. Durante o processo de extracção, é-lhe pedido para especificar uma pasta de destino para o Killpwd.exe.
  3. No Explorador do Windows, mova a pasta especificada no passo 2. Faça duplo clique no Killpwd.exe para executar o programa. Ou abra uma linha de comandos e introduza o caminho de Killpwd.exe para executar o programa.

Parâmetros da linha de comandos

Os seguintes parâmetros da linha de comandos estão disponíveis na nova versão de Killpwd.exe:
Reduzir esta tabelaExpandir esta tabela
ParâmetroAcção
/? /H /Help Apresenta texto de ajuda da ferramenta Killpwd.
/F /FilePesquisa palavras-passe num ficheiro específico e, em seguida, remove as palavras-passe.
/P /PathPesquisa palavras-passe em ficheiros existentes numa pasta específica e, em seguida, remove as palavras-passe.
/NologoSuprime a apresentação de informações de logótipo.
/RActiva o modo recursivo. Todos os ficheiros e subpastas da pasta especificada serão pesquisados e limpos.
/NActiva o modo só verificação. Os ficheiros serão pesquisados, mas as palavras-passe não serão removidas. Este parâmetro é utilizado para criar uma lista de alterações que serão efectuadas pelo utilitário. Poderá utilizar esta lista para rever as alterações de modo a verificar a sua exactidão antes de efectuar as alterações.
/V /VerboseActiva o início de sessão de modo verboso.
Nota: tem de ter direitos de administrador do Windows para executar o utilitário.

Ponto Da Situação

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Para obter mais informações sobre como transferir e instalar o Service Pack mais recente do SQL Server, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
301511  (http://support.microsoft.com/kb/301511/ ) How to obtain the latest SQL Server 7.0 service pack
290211  (http://support.microsoft.com/kb/290211/ ) How to obtain the latest SQL Server 2000 service pack
Para obter mais informações, contacte o fornecedor de suporte principal.

Mais Informação

O ficheiro Sqlsp.log é utilizado para controlar o progresso da instalação e para resolver problemas de instalação de Service Packs.

Para obter mais informações sobre como determinar a pasta onde o Windows está instalado, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
305792  (http://support.microsoft.com/kb/305792/ ) Como determinar a pasta em que o Windows está instalado

Referências

Para obter mais informações, consulte os seguintes boletins de segurança da Microsoft:
http://www.microsoft.com/portugal/technet/seguranca/boletins/MS02-035.mspx (http://www.microsoft.com/portugal/technet/seguranca/boletins/MS02-035.mspx)

http://www.microsoft.com/technet/security/bulletin/MS00-035.mspx (http://www.microsoft.com/technet/security/bulletin/MS00-035.mspx)
Se não encontrar uma resposta para a sua questão, visite os Newsgroups do Microsoft SQL Server em:
Microsoft SQL Server Newsgroups (http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sqlserver.server)
Deseja fazer algum comentário sobre este ou outros artigos da base de dados de conhecimento do Microsoft SQL Server? Envie o seu comentário para:
SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com)

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbproductlink kbdownload kbbug kbfix kbgraphxlinkcritical kbqfe KB263968