Dela via


Tjänsthuvudnamn (SPN) i klientanslutningar (OLE DB) i SQL Server Native Client

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ladda ned OLE DB-drivrutins

Den här artikeln beskriver OLE DB-egenskaper och medlemsfunktioner som stöder tjänsthuvudnamn (SPN) i klientprogram. Mer information om SPN i klientprogram finns i SPN-stöd (Service Principal Name) i Klientanslutningar. Ett exempel finns i Integrerad Kerberos-autentisering (OLE DB).

Nyckelord för providerinitieringssträng

Följande nyckelord för providerinitieringssträng stöder SPN i OLE DB-program. I följande tabell används värdena i nyckelordskolumnen för providersträngen IDBInitialize::Initialize. Värdena i beskrivningskolumnen används i initieringssträngar vid anslutning med hjälp av ADO eller IDataInitialize::GetDataSource.

Nyckelord Beskrivning Värde
ServerSPN Server-SPN SPN för servern. Standardvärdet är en tom sträng, vilket gör att OLE DB-drivrutinen för SQL Server använder standardprovidergenererat SPN.
FailoverPartnerSPN SPN för redundanspartner SPN för redundanspartnern. Standardvärdet är en tom sträng, vilket gör att OLE DB-drivrutinen för SQL Server använder standardprovidergenererat SPN.

Initieringsegenskaper för datakälla

Följande egenskaper i egenskapsuppsättningen DBPROPSET_SQLSERVERDBINIT tillåter att program anger eller läser SPN.

Namn Typ Användning
SSPROP_INIT_SERVERSPN VT_BSTR, läsa/skriva Anger SPN för servern. Standardvärdet är en tom sträng, vilket gör att OLE DB-drivrutinen för SQL Server använder standardprovidergenererat SPN.
SSPROP_INIT_FAILOVERPARTNERSPN VT_BSTR, läsa/skriva Anger SPN för redundanspartnern. Standardvärdet är en tom sträng, vilket gör att OLE DB-drivrutinen för SQL Server använder standardprovidergenererat SPN.
SSPROP_INIT_DISCOVEREDSERVERSPN VT_BSTR, skrivskyddad Används för att fråga serverns SPN för en anslutning. (Version 18.6.3 eller senare)

Egenskaper för datakälla

Följande egenskaper i egenskapsuppsättningen DBPROPSET_SQLSERVERDATASOURCEINFO gör det möjligt för program att identifiera autentiseringsmetoden.

Namn Typ Användning
SSPROP_INTEGRATEDAUTHENTICATIONMETHOD VT_BSTR, skrivskyddat Returnerar den autentiseringsmetod som används för anslutningen. Värdet som returneras till programmet är det värde som Windows returnerar till OLE DB-drivrutinen för SQL Server. Följande är möjliga värden:
"NTLM", som returneras när en anslutning öppnas med NTLM-autentisering.
"Kerberos", som returneras när en anslutning öppnas med Kerberos-autentisering.

Om en anslutning har öppnats och autentiseringsmetoden inte kan fastställas returneras VT_EMPTY.

Den här egenskapen kan bara läsas när en datakälla har initierats. Om du försöker läsa egenskapen innan en datakälla har initierats returnerar IDBProperties::GetProperties DB_S_ERRORSOCCURRED eller DB_E_ERRORSOCCURRED, efter behov, och DBPROPSTATUS_NOTSUPPORTED anges i DBPROPSET_PROPERTIESINERROR för den här egenskapen. Det här beteendet är i enlighet med OLE DB-kärnspecifikationen.
SSPROP_MUTUALLYAUTHENTICATED VT_BOOL, skrivskyddat Returnerar VARIANT_TRUE om servrarna på anslutningen autentiserades ömsesidigt. annars returnerar VARIANT_FALSE.

Den här egenskapen kan bara läsas när en datakälla har initierats. Om det görs ett försök att läsa egenskapen innan en datakälla har initierats returnerar IDBProperties::GetProperties DB_S_ERRORSOCCURRED eller DB_E_ERRORSOCCURRED, efter behov, och DBPROPSTATUS_NOTSUPPORTED anges i DBPROPSET_PROPERTIESINERROR för den här egenskapen. Det här beteendet är i enlighet med OLE DB-kärnspecifikationen

Om det här attributet efterfrågas för en anslutning som inte använde Windows-autentisering returneras VARIANT_FALSE.

STÖD FÖR OLE DB API för SPN

I följande tabell beskrivs de OLE DB-medlemsfunktioner som stöder SPN i klientanslutningar:

Medlemsfunktion Beskrivning
IDataInitialize::GetDataSource pwszInitializationString kan innehålla de nya nyckelorden ServerSPN och FailoverPartnerSPN.
IDataInitialize::GetInitializationString Om SSPROP_INIT_SERVERSPN och SSPROP_INIT_FAILOVERPARTNERSPN inte har standardvärden inkluderas de i initieringssträngen via ppwszInitString som nyckelordsvärden för ServerSPN och FailoverPartnerSPN. Annars inkluderas inte dessa nyckelord i initieringssträngen.
IDBInitialize::Initiera Om frågan är aktiverad genom att ange DBPROP_INIT_PROMPT i initieringsegenskaperna för datakällan visas dialogrutan OLE DB-inloggning. Detta gör att SPN kan anges för både huvudservern och dess redundanspartner.

Providersträngen i DBPROP_INIT_PROVIDERSTRING, om den anges, identifierar de nya nyckelorden ServerSPN och FailoverPartnerSPN och använder sina värden, om sådana finns, för att initiera SSPROP_INIT_SERVER_SPN och SSPROP_INIT_FAILOVER_PARTNER_SPN.

IDBProperties::SetProperties kan anropas för att ange egenskaperna SSPROP_INIT_SERVER_SPN och SSPROP_INIT_FAILOVER_PARTNER_SPN innan IDBInitialize::Initiera anropas. Det här är ett alternativ till att använda en providersträng.

Om en egenskap anges på mer än en plats har en värdeuppsättning programmatiskt företräde framför ett värde som anges i providersträngen. Ett värde som anges i en initieringssträng har företräde framför ett värde som anges i en inloggningsdialogruta.

Om samma nyckelord visas mer än en gång i providersträngen har värdet från den första förekomsten företräde.
IDBProperties::GetProperties IDBProperties::GetProperties kan anropas för att hämta värdena för de nya initieringsegenskaperna för datakällan SSPROP_INIT_SERVERSPN och SSPROP_INIT_FAILOVERPARTNERSPN samt för de nya egenskaperna för datakällan SSPROP_AUTHENTICATIONMETHOD och SSPROP_MUTUALLYAUTHENTICATED.
IDBProperties::GetPropertyInfo IdbProperties::GetPropertyInfo innehåller de nya initieringsegenskaperna för datakällor SSPROP_INIT_SERVERSPN och SSPROP_INIT_FAILOVERPARTNERSPN, eller de nya egenskaperna för datakällan SSPROP_AUTHENTICATION_METHOD och SSPROP_MUTUALLYAUTHENTICATED.
IDBProperties::SetProperties IDBProperties::SetProperties kan anropas för att ange värdena för de nya initieringsegenskaperna för datakällan SSPROP_INITSERVERSPN och SSPROP_INIT_FAILOVERPARTNERSPN.

Dessa egenskaper kan ställas in när som helst, men om datakällan redan är öppen returneras följande fel: DB_E_ERRORSOCCURRED, "Ole DB-åtgärden med flera steg genererade fel. Kontrollera varje OLE DB-statusvärde om det är tillgängligt. Inget arbete har utförts."

Se även

OLE DB-drivrutin för SQL Server Programming