Nomi SPN (Service Principal Name) nelle connessioni client (ODBC)

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server . Per SQLNCLI fornito come componente del motore di database di SQL Server (versioni da 2012 a 2019), vedere questa eccezione relativa al ciclo di vita del supporto.

In questo argomento vengono descritti gli attributi e le funzioni ODBC che supportano i nomi SPN (Service Principal Name, nome dell'entità servizio) nelle applicazioni client. Per altre informazioni sui nomi SPN nelle applicazioni client, vedere Service Principal Name (SPN) Support in Client Connections and Get Mutual Kerberos Authentication.For more information about SPN in client applications, see Service Principal Name (SPN) support in Client Connections and Get Mutual Kerberos Authentication.

Parole chiave per le stringhe di connessione

Le parole chiave per le stringhe di connessione seguenti consentono la specifica di un nome SPN nelle applicazioni client.

Parola chiave Valore
ServerSPN Nome SPN del server. Il valore predefinito è una stringa vuota, che fa sì che SQL Server Native Client usi il nome SPN predefinito generato dal driver.
FailoverPartnerSPN Nome SPN del partner di failover. Il valore predefinito è una stringa vuota, che fa sì che SQL Server Native Client usi il nome SPN predefinito generato dal driver.

Attributi di connessione

Gli attributi di connessione seguenti consentono la specifica di un nome SPN e di una query per il metodo di autenticazione nelle applicazioni client.

Nome Digita Utilizzo
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, lettura/scrittura Specifica il nome SPN per il server. Il valore predefinito è una stringa vuota, che fa sì che SQL Server Native Client usi il nome SPN predefinito generato dal driver.

Su questo attributo è possibile eseguire una query solo in seguito alla relativa impostazione a livello di codice o all'apertura di una connessione. Se si tenta di eseguire una query su questo attributo in una connessione non aperta e con l'attributo non impostato a livello di codice, viene restituito SQL_ERROR e viene registrato un record di diagnostica con SQLState 08003 e il messaggio "Connessione non aperta".

Se si tenta di impostare l'attributo quando una connessione è aperta, viene restituito SQL_ERROR e viene registrato un record di diagnostica con SQLState HY011 e il messaggio "Operazione correntemente non valida".
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, sola lettura Restituisce il metodo di autenticazione utilizzato per la connessione. Il valore restituito all'applicazione è il valore restituito da Windows a SQL Server Native Client. I valori possibili sono:

"NTLM", restituito quando una connessione viene aperta utilizzando l'autenticazione NTLM.

"Kerberos", restituito quando una connessione viene aperta utilizzando l'autenticazione Kerberos.



Questo attributo può essere letto solo per una connessione aperta in cui è stata utilizzata l'autenticazione di Windows. Se si tenta di leggerlo prima che venga aperta una connessione, viene restituito SQL_ERROR e viene registrato un errore con SQLState 08003 e il messaggio "Connessione non aperta".

Se si esegue una query su questo attributo in una connessione in cui non è stata utilizzata l'autenticazione di Windows, viene restituito SQL_ERROR e viene registrato un errore con SQLState HY092 e il messaggio "Identificatore di opzione o di attributo non valido (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD è disponibile solo per connessioni trusted)".

Se non è possibile determinare il metodo di autenticazione, viene restituito SQL_ERROR e viene registrato un errore con SQLState HY000 e il messaggio "Errore generale".
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, sola lettura Restituisce SQL_TRUE se nella connessione è stata eseguita un'autenticazione reciproca del server. In caso contrario, restituisce SQL_FALSE.

Questo attributo può essere letto solo per una connessione aperta. Se si tenta di leggerlo prima che venga aperta una connessione, viene restituito SQL_ERROR e viene registrato un errore con SQLState 08003 e il messaggio "Connessione non aperta".

Se viene eseguita una query sull'attributo per una connessione in cui non è stata utilizzata l'autenticazione di Windows, viene restituito SQL_FALSE.

Supporto delle funzioni ODBC per la specifica dei nomi SPN

Le funzioni ODBC seguenti supportano le applicazioni client e i nomi SPN:

Vedi anche

SQL Server Native Client (ODBC)