Tjänsthuvudnamn (SPN) i klientanslutningar (OLE DB)
gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
Viktig
Den interna SQL Server-klienten (ofta förkortad SNAC) har tagits bort från SQL Server 2022 (16.x) och SQL Server Management Studio 19 (SSMS). Både SQL Server Native Client OLE DB-providern (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny utveckling. Växla till den nya Microsoft OLE DB Driver (MSOLEDBSQL) för SQL Server framöver.
Det här avsnittet 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 SQL Server Native Client använder standard, providergenererat SPN. |
FailoverPartnerSPN | SPN för redundanspartner | SPN för redundanspartnern. Standardvärdet är en tom sträng, vilket gör att SQL Server Native Client använder standard, providergenererat SPN. |
Initieringsegenskaper för datakälla
Följande egenskaper i egenskapsuppsättningen DBPROPSET_SQLSERVERDBINIT tillåter att program anger 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 SQL Server Native Client använder standard, providergenererat 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 SQL Server Native Client använder standard, providergenererat SPN. |
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 den interna SQL Server-klienten. 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." |