none
Problema com SPN RRS feed

  • Pergunta


  • Pessoal

          Estou analisando um Servidor com banco de dados SQL Server, onde ao tentar o acesso via Management Studio, foi identifico problema com SPN, onde ai foi identificado que deveria ser :

    Utilizado a opção abaixo para remover :

    Remove SPN "MSSQLSvc/ServerCatraca.xxxABCxxx.com.br:1433" from account "xxxABCxxx\projetojan$"

    SetSPN -d "MSSQLSvc/ServerCatraca.xxxABCxxx.com.br:1433" "xxxABCxxx\projetojan$"

    e depois ser utilizado a opção abaixo para adicionar :

    Add SPN "MSSQLSvc/ServerCatraca.xxxABCxxx.com.br:1433" to account "xxxABCxxx\user_sql"

    SetSPN -s "MSSQLSvc/ServerCatraca.xxxABCxxx.com.br:1433" "xxxABCxxx\user_sql"

      No caso qual seria o melhor local onde eu poderia confirmar que essas informações estão registrada (mesmo) ou até mesmo que esteja cadastrada, pois como não identifiquei este problema com outros Servidores, estou preocupado se eu fizer está alteração, pode impactar em algo que já vem funcionando dentro do normal, onde apenas o acesso via Management Studio (isto de outra estação e trabalho) é constatei o problema no momento, tem como eu fazer este processo de uma forma mais segurança e verificando onde estão esses dados cadastrados ?

    E percebi que via terminal Service e até pelo próprio Servidor a utilização do Management Studio, funciiona sem problema algum.

    • Editado neibala quarta-feira, 20 de novembro de 2019 17:46 Erro de digitação e melhor explicação.
    segunda-feira, 18 de novembro de 2019 12:58

Respostas

  • Estou analisando um Servidor com banco de dados SQL Server, onde ao tentar o acesso via terminal Service, foi identifico problema com SPN

    Mas qual foi o erro? Você viu o erro no log de eventos do servidor ou em outro local?

     

    só que gostaria de saber se conseguiria ver isto através de alguma tela do Windows, pois assim teria maior certeza que na opção de remover estaria removendo da forma certa e eu saberia se realmente foi removido e no caso da adição teria maior controle para saber se realmente foi adicionado ou se está opção já está adicionada ou quando eu  adicionar vai realmente aparecer na forma correta.

    Experimente
          setpsn -l hostname

    Detalhes em setPSN.

    ---

    No documento Registrar um nome de entidade de serviço para conexões de Kerberos consta "É possível verificar se uma conexão está usando Kerberos consultando a exibição de gerenciamento dinâmico sys.dm_exec_connections. Execute a consulta a seguir e verifique o valor da coluna auth_scheme, que será "KERBEROS" se Kerberos estiver habilitado".

    SQL
    SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid ;  

     

    Sugiro a leitura do documento anteriormente citado, pois me parece que há muita informação útil para compreender os procedimentos e o que está envolvido. Por exemplo: "Um SPN (Nome da Entidade de Serviço) deve ser registrado no Active Directory, o qual assume a função do Centro de Distribuição de Chaves em um domínio Windows. O SPN, depois de registrado, é mapeado para a conta do Windows que iniciou o serviço da instância do SQL Server . Se o registro do SPN não foi realizado ou falhou, a camada de segurança do Windows não poderá determinar a conta associada ao SPN e a autenticação Kerberos não será utilizada".

    ---



    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz quarta-feira, 20 de novembro de 2019 03:34
    • Marcado como Resposta neibala domingo, 1 de dezembro de 2019 21:40
    quarta-feira, 20 de novembro de 2019 03:18
  • Neibala,

    Então, mas eu havia entendido que você deseja validar essas alterações por interface gráfica e não por linha de comando.

    No caso de linha de comando não conheço outra alternativa a não ser utilizar o próprio SetSPN, em relação a parte gráfica, você poderia através da ferramenta Active Directory Users and Computers obter maiores detalhes e validar as configurações.

    Então, agora se você poder nos orientar: Você deseja ter acesso e alterar as configurações por linha de comando ou interface gráfica?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta neibala domingo, 1 de dezembro de 2019 21:39
    quarta-feira, 20 de novembro de 2019 11:11

Todas as Respostas

  • Neibala,

    Você esta especificando no caminho de conexão a porta do SQL Server?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 18 de novembro de 2019 17:22
  • Junior Galvão

          O meu acesso que faço via mstsc é igual em todos os casos e justamente neste Servidor especifico identifiquei este problema, onde passo apenas o ip do Servidor para o acesso além do padrão normal da configuração.

          E através da ferramenta da Microsoft ( Microsoft SQL Server - Kerberos Configuration Manager tool ) foi que identifiquei essa forma onde consigo resolver o problema, só que gostaria de saber se conseguiria ver isto através de alguma tela do Windows, pois assim teria maior certeza que na opção de remover estaria removendo da forma certa e eu saberia se realmente foi removido e no caso da adição teria maior controle para saber se realmente foi adicionado ou se está opção já está adicionada ou quando eu  adicionar vai realmente aparecer na forma correta.

        Então teria uma maneira de identificar isto de uma maneira mais visual dentro do Windows ?

        

    segunda-feira, 18 de novembro de 2019 19:11
  • Junior Galvão

          O meu acesso que faço via mstsc é igual em todos os casos e justamente neste Servidor especifico identifiquei este problema, onde passo apenas o ip do Servidor para o acesso além do padrão normal da configuração.

          E através da ferramenta da Microsoft ( Microsoft SQL Server - Kerberos Configuration Manager tool ) foi que identifiquei essa forma onde consigo resolver o problema, só que gostaria de saber se conseguiria ver isto através de alguma tela do Windows, pois assim teria maior certeza que na opção de remover estaria removendo da forma certa e eu saberia se realmente foi removido e no caso da adição teria maior controle para saber se realmente foi adicionado ou se está opção já está adicionada ou quando eu  adicionar vai realmente aparecer na forma correta.

        Então teria uma maneira de identificar isto de uma maneira mais visual dentro do Windows ?

        

    Neibala,

    Talvez através do Group Policie Editor, commando gpedit.msc, teriamos que analisar.



    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 18 de novembro de 2019 19:24
  • Junior Galvão

        Neste caso você teria alguma outra opção além desta, pois como na ferramenta comentado de utilizar o comando ( SetSPN  ), você já utilizo este comando com algo neste sentido ou próximo disto ?

    terça-feira, 19 de novembro de 2019 18:58
  • Estou analisando um Servidor com banco de dados SQL Server, onde ao tentar o acesso via terminal Service, foi identifico problema com SPN

    Mas qual foi o erro? Você viu o erro no log de eventos do servidor ou em outro local?

     

    só que gostaria de saber se conseguiria ver isto através de alguma tela do Windows, pois assim teria maior certeza que na opção de remover estaria removendo da forma certa e eu saberia se realmente foi removido e no caso da adição teria maior controle para saber se realmente foi adicionado ou se está opção já está adicionada ou quando eu  adicionar vai realmente aparecer na forma correta.

    Experimente
          setpsn -l hostname

    Detalhes em setPSN.

    ---

    No documento Registrar um nome de entidade de serviço para conexões de Kerberos consta "É possível verificar se uma conexão está usando Kerberos consultando a exibição de gerenciamento dinâmico sys.dm_exec_connections. Execute a consulta a seguir e verifique o valor da coluna auth_scheme, que será "KERBEROS" se Kerberos estiver habilitado".

    SQL
    SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid ;  

     

    Sugiro a leitura do documento anteriormente citado, pois me parece que há muita informação útil para compreender os procedimentos e o que está envolvido. Por exemplo: "Um SPN (Nome da Entidade de Serviço) deve ser registrado no Active Directory, o qual assume a função do Centro de Distribuição de Chaves em um domínio Windows. O SPN, depois de registrado, é mapeado para a conta do Windows que iniciou o serviço da instância do SQL Server . Se o registro do SPN não foi realizado ou falhou, a camada de segurança do Windows não poderá determinar a conta associada ao SPN e a autenticação Kerberos não será utilizada".

    ---



    José Diz     Belo Horizonte, MG - Brasil     [query performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Editado José Diz quarta-feira, 20 de novembro de 2019 03:34
    • Marcado como Resposta neibala domingo, 1 de dezembro de 2019 21:40
    quarta-feira, 20 de novembro de 2019 03:18
  • Neibala,

    Então, mas eu havia entendido que você deseja validar essas alterações por interface gráfica e não por linha de comando.

    No caso de linha de comando não conheço outra alternativa a não ser utilizar o próprio SetSPN, em relação a parte gráfica, você poderia através da ferramenta Active Directory Users and Computers obter maiores detalhes e validar as configurações.

    Então, agora se você poder nos orientar: Você deseja ter acesso e alterar as configurações por linha de comando ou interface gráfica?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta neibala domingo, 1 de dezembro de 2019 21:39
    quarta-feira, 20 de novembro de 2019 11:11
  •  José Diz e Junior Galvão / Grupo

        Na questão da visualização pode ser tanto por linha de comando como por parte gráfica, o que eu precisaria ter é a visualização das configurações,  pois assim eu consigo comparar em relação a outros Servidores e até mesmo verificar se a informação que foi comentada de remover realmente eu consigo visualizar e a outra que foi comentada de ser adiciona eu realmente tenho que adicionar ou ela já consta e está havendo um problema de duplicidade no momento.

        E sobre a questão da pergunta, dei uma melhorada, pois como estava sendo várias alternativas acabou trocando a informação onde estava tendo acesso e a que não estava tendo acesso, acabei explicando melhor.

        Então via Management Studio deste Servidor não tenho acesso já para outros Servidores acesso sem problema algum, isto de outra estação de trabalho, só que via terminal service e pelo próprio Servidor tem acesso sem problema algum, isto utilizando o Management Studio.

        E executando o comando ( setpsn -l hostname ), percebi as seguintes linhas diferentes em relação a outros Servidores.

     

            MSSQLSvc/ServerCatraca.xxxABCxxx.com.br

             MSSQLSvc/ServerCatraca.xxxABCxxx.com.br:1433

        E estou enviando em anexo o código do erro para melhor entendimento e caso precise de algo mais estou a disposição.

    ===================================
    
    Não é possível conectar-se a ServerCatraca.
    
    ===================================
    
    O nome da entidade de destino está incorreto. Não é possível gerar contexto SSPI. (.Net SqlClient Data Provider)
    
    ------------------------------
    Para obter ajuda, clique em: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476
    
    ------------------------------
    Nome do Servidor: ServerCatraca
    Número do Erro: 0
    Gravidade: 11
    Estado: 0
    Procedimento: GenClientContext
    
    
    ------------------------------
    Local do Programa:
    
       em System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
       em System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
       em System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
       em System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
       em System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       em System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       em System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
       em System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
       em System.Data.SqlClient.SqlConnection.Open()
       em Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
       em Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
    


    • Editado neibala quarta-feira, 20 de novembro de 2019 18:27 erro de digitação.
    quarta-feira, 20 de novembro de 2019 18:21
  • Neibala,

    Neste caso, acredito que o mais indicado seja você utilizer de forma simples e direta justamente o comando SetSPN, fazendo uso das opções de acordo com a sua necessidade.

    Uma consideração que temos que levar em conta, ainda mais que se refere a um ambiente de controle de ponto, são as inconsistências de rede e possível problemas de autenticação por parte da estação de trabalho ou servidor no AD, quando isso ocorrer o comando SetSPN é uma das formas mais rápidas para se identificar este comportamento, pois normalmente as empresas colocam os relógios de ponto em VLans diferentes.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de novembro de 2019 17:30
  • José Diz e Junior Galvão / Grupo

         Acompanho os processos e dicas informadas neste processo junto até mesmo com o meu pessoal de segurança de rede, conseguimos identificar qual Servidor estava com problema de uma configuração que não deveria estar, onde o comando  ( setpsn -l hostname ), foi de grande ajuda, pois comparando percebemos a diferença e até o motivo da diferença que acabou ocorrendo, com isto identificamos o equivoco, quando foi configurado, onde foi pensando uma coisa e feito outra e ajustando o erro foi resolvido o problema.

        Agradeço toda a ajuda e atenção no assunto.

    domingo, 1 de dezembro de 2019 21:39