Nomes Principais de Serviço (SPNs) nas Ligações de Cliente (ODBC)

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

Importante

SQL Server Native Client (SNAC) não é fornecido com:

  • SQL Server 2022 (16.x) e versões posteriores
  • SQL Server Management Studio 19 e versões posteriores

O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Microsoft OLE DB Provider for SQL Server (SQLOLEDB) herdado não são recomendados para o desenvolvimento de novos aplicativos.

Para novos projetos, use um dos seguintes drivers:

Para o SQLNCLI fornecido como componente do Mecanismo de Base de Dados do SQL Server (versões de 2012 a 2019), consulte esta exceção ao Ciclo de Vida de Suporte .

Este tópico descreve atributos e funções ODBC que suportam nomes principais de serviço (SPNs) em aplicações cliente. Para mais informações sobre SPNs em aplicações cliente, consulte Suporte de Nome Principal de Serviço (SPN) em Ligações de Cliente e Obtenha Autenticação Mútua Kerberos.

Palavras-chave da cadeia de ligação

As seguintes palavras-chave de cadeia de ligação permitem que aplicações clientes especifiquem um SPN.

Keyword Valor
ServidorSPN O SPN para o servidor. O valor padrão é uma cadeia vazia, o que faz com que o SQL Server Native Client use o SPN padrão gerado pelo driver.
FailoverPartnerSPN O SPN para o parceiro de contingência. O valor padrão é uma cadeia vazia, o que faz com que o SQL Server Native Client use o SPN padrão gerado pelo driver.

Atributos de conexão

Os seguintes atributos de ligação permitem que as aplicações clientes especifiquem um SPN e consultem o método de autenticação.

Nome Tipo Usage
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, leitura/escrita Especifica o SPN para o servidor. O valor padrão é uma cadeia vazia, o que faz com que o SQL Server Native Client use o SPN padrão gerado pelo driver.

Este atributo só pode ser consultado depois de ter sido definido programaticamente ou depois de uma ligação ter sido aberta. Se for feita uma tentativa de consulta a este atributo numa ligação que não está aberta e o atributo não foi definido programaticamente, SQL_ERROR é devolvido, e um registo de diagnóstico é registado com SQLState 08003 e a mensagem "Connection not open".

Se for feita uma tentativa de definir este atributo quando uma ligação está aberta, SQL_ERROR é devolvida e um registo de diagnóstico é registado com SQLState HY011 e a mensagem "Operação inválida neste momento".
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, apenas leitura Retorna o método de autenticação usado para a conexão. O valor devolvido à aplicação é o valor que o Windows devolve ao SQL Server Native Client. Os valores possíveis são:

"NTLM", que é retornado quando uma conexão é aberta usando a autenticação NTLM.

"Kerberos", que é retornado quando uma conexão é aberta usando a autenticação Kerberos.



Este atributo só pode ser lido para uma ligação aberta que utilizou Autenticação Windows. Se for feita uma tentativa de a ler antes de uma ligação ser aberta, SQL_ERROR é devolvida e um erro é registado com SQLState 08003 e a mensagem "Connection not open".

Se este atributo for consultado numa ligação que não utilizou Windows Autenticação, SQL_ERROR é devolvido, e um erro é registado com SQLState HY092 e a mensagem "Invalid attribute/option identifier (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD is only available for Trusted Connections)".

Se o método de autenticação não puder ser determinado, SQL_ERROR é devolvido, e é registado um erro com SQLState HY000 e a mensagem "Erro geral".
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, apenas leitura Devolve SQL_TRUE se o servidor na ligação foi autenticado mutuamente; caso contrário, devolve SQL_FALSE.

Este atributo só pode ser lido para uma ligação aberta. Se for feita uma tentativa de a ler antes de uma ligação ser aberta, SQL_ERROR é devolvida e um erro é registado com SQLState 08003 e a mensagem "Connection not open".

Se este atributo for consultado para uma ligação que não utilizou Windows Autenticação, SQL_FALSE é devolvido.

Suporte à Função ODBC para Especificação de SPNs

As seguintes funções ODBC suportam aplicações clientes e SPNs: