SPNs (Nomes da Entidade de Serviço) em conexões de cliente (ODBC)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento de aplicativo. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) ou o Microsoft ODBC Driver for SQL Server mais recente no futuro. Para SQLNCLI que é fornecido como um componente do Mecanismo de Banco de Dados SQL Server (versões 2012 a 2019), consulte esta exceção de Ciclo de Vida de Suporte.

Este tópico descreve atributos e funções ODBC que dão suporte a SPNs (nomes de entidades de serviço) em aplicativos cliente. Para obter mais informações sobre SPNs em aplicativos cliente, consulte Suporte ao SPN (Nome da Entidade de Serviço) em Conexões de Cliente e Obter Autenticação Kerberos Mútua.

Palavras-chave de cadeia de conexão

As palavras-chave de cadeia de conexão a seguir permitem que aplicativos cliente especifiquem um SPN.

Palavra-chave Valor
ServerSPN O SPN do servidor. O valor padrão é uma cadeia de caracteres vazia, o que faz com que SQL Server Native Client usem o SPN padrão gerado pelo driver.
FailoverPartnerSPN O SPN do parceiro de failover. O valor padrão é uma cadeia de caracteres vazia, o que faz com que SQL Server Native Client usem o SPN padrão gerado pelo driver.

Atributos de conexão

Os atributos de conexão a seguir permitem que aplicativos cliente especifiquem um SPN e consultem o método de autenticação.

Nome Type Uso
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, leitura/gravação Especifica o SPN do servidor. O valor padrão é uma cadeia de caracteres vazia, o que faz com que SQL Server Native Client usem o SPN padrão gerado pelo driver.

Esse atributo só poderá ser consultado depois que for definido por meio de programação ou depois que uma conexão for aberta. Se for feita uma tentativa de consultar esse atributo em uma conexão que não esteja aberta e o atributo não tiver sido definido por meio de programação, SQL_ERROR será retornado e um registro de diagnóstico será registrado com SQLState 08003 e uma mensagem informando que a conexão não está aberta.

Se for feita uma tentativa de definir esse atributo quando uma conexão estiver aberta, SQL_ERROR será retornado e um registro de diagnóstico será registrado com SQLState HY011 e uma mensagem informando que a operação não é válida no momento.
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, somente leitura Retorna o método de autenticação usado para a conexão. O valor retornado ao aplicativo é o valor que o Windows retorna para 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.



Esse atributo só pode ser lido para uma conexão aberta que usou a Autenticação do Windows. Se for feita uma tentativa de lê-lo antes da abertura de uma conexão, SQL_ERROR será retornado e um erro será registrado com SQLState 08003 e uma mensagem que informa que a conexão não está aberta.

Se esse atributo for consultado em uma conexão que não usou a Autenticação do Windows, será retornado SQL_ERROR e um erro será registrado com SQLState HY092 e a mensagem de identificador de atributo/opção inválido (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD só está disponível para conexões confiáveis).

Se o método de autenticação não puder ser determinado, SQL_ERROR será retornado e um erro será registrado com SQLState HY000 e uma mensagem de erro geral.
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, somente leitura Retornará SQL_TRUE se o servidor na conexão tiver sido autenticado mutuamente; caso contrário, retornará SQL_FALSE.

Esse atributo só pode ser lido para uma conexão aberta. Se for feita uma tentativa de lê-lo antes da abertura de uma conexão, SQL_ERROR será retornado e um erro será registrado com SQLState 08003 e uma mensagem que informa que a conexão não está aberta.

Se esse atributo for consultado para uma conexão que não usou a Autenticação do Windows, será retornado SQL_FALSE.

Suporte de funções ODBC para especificação de SPNs

As seguintes funções ODBC oferecem suporte a aplicativos cliente e SPNs:

Consulte Também

SQL Server Native Client (ODBC)