Udostępnij za pośrednictwem


Obsługa usługa Principal Name (główna nazwa usługi) w programie połączeń klientów

Zaczyna się od SQL Server 2008, obsługę głównej nazwy usługa (SPN) został rozszerzony, aby włączyć uwierzytelnianie wzajemne między wszystkie protokoły. W poprzednich wersjach SQL ServerNazwy główna nazwa usługi były obsługiwane tylko w przypadku protokołu Kerberos przez TCP, gdy domyślny główna nazwa usługi dla SQL Server wystąpienie został zarejestrowany w usłudze Active Directory.

Nazwy SPN są używane przez protokół uwierzytelnianie do ustalenia konta, w którym SQL Server wystąpienie jest uruchamiane. Jeśli konto wystąpienie jest znany, uwierzytelnianie Kerberos umożliwia wzajemne uwierzytelnianie przez klient i serwera.Jeśli konto wystąpienie nie jest znany, uwierzytelnianie NTLM, który zapewnia uwierzytelnianie klient tylko przez serwer, jest używany.Currently, SQL Server Native Client performs the authentication lookup, deriving the SPN from the instance name and network connection properties.SQL Server instances will attempt to register SPNs on startup, or they can be registered manually.Jednak rejestracji zakończy się niepowodzeniem, jeśli nie ma niewystarczające prawa dostępu dla konta, który usiłuje zarejestrować SPN.

Konta domena i komputera są automatycznie rejestrowane w usłudze Active Directory.These can be used as SPNs, or administators can define their own SPNs.SQL Server 2008 makes secure authentication more manageable and reliable by allowing clients to directly specify the SPN to use.

Uwaga

główna nazwa usługi określonej przez aplikację klient jest używane tylko wtedy, gdy połączenie jest nawiązywane przy użyciu zabezpieczeń systemu Windows NT zintegrowane.

Aby uzyskać więcej informacji o protokole Kerberos zobacz następujące artykuły:

Sposób użycia

W poniższej tabela opisano najbardziej typowe scenariusze, w których klient aplikacje umożliwiają bezpieczne uwierzytelnianie.

Scenariusz

Description

Starsza aplikacja nie określa główna nazwa usługi.

W tym scenariuszu zgodności gwarantuje, że będą żadna zmiana zachowania w przypadku aplikacji opracowanych dla wcześniejszych wersji programu SQL Server. Jeśli główna nazwa usługi nie zostanie określony, aplikacja opiera się na generowanej nazwy główna nazwa usługi, a nie zna, która metoda uwierzytelnianie jest używana.

Aplikacja klient przy użyciu bieżącej wersja programu SQL Server Macierzysty klient określa główna nazwa usługi w ciąg połączenia, jak domena konta użytkownika lub komputera, an główna nazwa usługi specyficzne dla wystąpienie lub jako ciąg znaków zdefiniowanych przez użytkownika.

The ServerSPN keyword can be used in a dostawca, initialization, or connection ciąg to do the following:

  • Określ konto używane przez SQL Server wystąpienie dla połączenia. Upraszcza to dostęp do uwierzytelnianie Kerberos.Jeśli Center (KDC) Kerberos klucz rozkładu jest dostępny i poprawne konto zostanie określone, uwierzytelnianie Kerberos jest bardziej mogą być używane niż NTLM.Centrum dystrybucji KLUCZY zazwyczaj znajduje się na tym samym komputerze co kontrolera domena.

  • Określ główna nazwa usługi do konta usługa dla wyszukiwania SQL Server wystąpienie. Dla każdego SQL Server wystąpienie, dwa są generowane nazwy SPN domyślne, które mogą być używane w tym celu. Te klucze nie są gwarantowane, że jest obecny w usłudze Active Directory, jednak tak, aby w tej sytuacji uwierzytelnianie Kerberos nie jest gwarantowane.

  • Określ główna nazwa usługi, które będą używane do wyszukiwania konta usługa dla SQL Server wystąpienie. Może to być dowolny ciąg zdefiniowany przez użytkownika, który jest mapowany do konta usługa.W takim przypadek klucz ręcznie zarejestrować w Centrum dystrybucji KLUCZY i muszą spełniać zasady dla użytkownika nazwy główna nazwa usługi.

The FailoverPartnerSPN keyword can be used to specify the główna nazwa usługi for the failover partner server. Zakres kont i wartości kluczy w usłudze Active Directory jest taka sama, jak wartości, można określić dla serwer główny.

Aplikacji ODBC określa główna nazwa usługi jako atrybut połączenia serwer główny lub serwera partner pracy awaryjnej.

Atrybut połączenia SQL_COPT_SS_SERVER_SPN można określić nazwy główna nazwa usługi w przypadku połączenia z serwerem głównym.

Atrybut połączenia SQL_COPT_SS_FAILOVER_PARTNER_SPN można określić nazwy główna nazwa usługi serwera partner pracy awaryjnej.

Aplikacja OLE DB określa główna nazwa usługi jako właściwość inicjowania urządzenie źródłowe danych dla serwer główny lub trybu pracy awaryjnej serwera partner.

właściwość połączenia SSPROP_INIT_SERVER_SPN w DBPROPSET_SQLSERVERDBINIT zestaw właściwość, który może służyć do określania nazwy główna nazwa usługi dla połączenia.

właściwość połączenia SSPROP_INIT_FAILOVER_PARTNER_SPN w DBPROPSET_SQLSERVERDBINIT można określić nazwy główna nazwa usługi serwera partner pracy awaryjnej.

Użytkownik określa główna nazwa usługi serwera lub serwer partner pracy awaryjnej w danych nazwy urządzenie źródłowe typu ODBC (DSN).

Nazwę główna nazwa usługi może być określony w ODBC DSN za pomocą okna dialogowego konfiguracji DSN.

Użytkownik określa główna nazwa usługi serwera lub serwer partner pracy awaryjnej w OLE DB Łącze danych or Identyfikator logowania -okno dialogowe.

Można określić nazwy główna nazwa usługi w Łącze danych or Identyfikator logowania -okno dialogowe.The Login dialog box can be used with either ODBC or OLE DB.

Aplikacji ODBC określa metoda uwierzytelnianie używaną do ustanawiania połączenia.

Gdy połączenie został otwarty pomyślnie, aplikacja może monitować atrybut połączenia SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD Aby ustalić, która metoda uwierzytelnianie został użyty. Wartości zostaną uwzględnione, ale nie są ograniczone do NTLM i Kerberos.

Aplikacja OLE DB określa metoda uwierzytelnianie używaną do ustanawiania połączenia.

Gdy połączenie zostanie otwarty pomyślnie, aplikacja może monitować właściwość połączenia SSPROP_AUTHENTICATION_METHOD w DBPROPSET_SQLSERVERDATASOURCEINFO zestaw właściwość, aby ustalić, która metoda uwierzytelnianie został użyty. Wartości zostaną uwzględnione, ale nie są ograniczone do NTLM i Kerberos.

Praca awaryjna

Nazwy SPN nie są przechowywane w pamięci podręcznej trybu pracy awaryjnej i dlatego nie mogą być przekazywane między połączeniami.Nazwy SPN będzie używany na wszystkich prób połączenia kapitał i partner, gdy jest to określone w ciąg połączenia lub atrybutów połączenia.

Tworzenie puli połączeń

Aplikacje należy pamiętać, że określenie nazwy SPN w niektórych, ale nie wszystkie ciągi połączeń mogą przyczyniać się do puli fragmentacji.

Aplikacje programowo można określić nazwy SPN jako atrybuty połączenia, zamiast określać słowa kluczowe ciąg połączenia.Może to pomóc w zarządzaniu fragmentacji puli połączeń.

Aplikacje należy pamiętać, że nazwy SPN w ciągi połączeń mogą być zastępowane, ustawiając odpowiednie atrybuty połączenia, ale ciągów połączeń używanych przez buforowanie połączeń będzie używać wartości ciąg połączenia dla celów buforowania.

Zachowanie serwera poziom niedziałający

Nowe zachowanie połączenia jest implementowane przez klient, dlatego nie jest specyficzne dla wersja programu SQL Server.

Połączone serwery i delegowania

Po utworzeniu połączonych serwerów @provstr Parametr sp_addlinkedserver można użyć do określenia serwera i partner pracy awaryjnej SPN.Korzyści wynikające z w ten sposób są takie same, jak podając nazwy SPN w ciągów połączeń klient: Jest łatwiejsze i bardziej niezawodny do ustanawiania połączeń, które korzystają z uwierzytelnianie Kerberos.

Delegowanie z połączonymi serwerami wymaga uwierzytelnianie Kerberos.

Aby uzyskać listę wymagań, zobacz Configuring Linked Servers for Delegation.

Aspektów zarządzania SPN określona przez aplikacje

Po wybraniu opcji wskazuje, czy trzeba określać nazwy SPN w aplikacji (przy użyciu ciągów połączenia) lub programowo za pomocą właściwości połączenia (zamiast korzystania z dostawca defalt generowane SPN), należy wziąć pod uwagę następujące czynniki:

  • Zabezpieczenia: Czy określonej nazwy główna nazwa usługi ujawnienia informacji, które są chronione?

  • Niezawodność: Aby umożliwić korzystanie z domyślnej nazwy SPN, konto usługa, w którym SQL Server uruchamia wystąpienie musi mieć wystarczające przywileje, aby zaktualizować usługa Active Directory w Centrum dystrybucji KLUCZY.

  • Przezroczystość wygody i lokalizacji: W jaki sposób SPN aplikacji wpłynie po jego bazy danych do różnych SQL Server wystąpienie?Dotyczy to zarówno serwer główny, jak i partner pracy awaryjnej korzystający z dublowanie bazy danych.Jeśli zmiana serwera oznacza, że nazwy SPN musi zostać zmienione, w jaki sposób będzie tej aplikacji mają wpływ na to?Ma być zarządzany wszystkie zmiany?

Określanie nazwy główna nazwa usługi

Można określić nazwy główna nazwa usługi w oknach dialogowych oraz w kodzie.W tej części opisano, w jaki sposób można określić główna nazwa usługi.

Maksymalna długość główna nazwa usługi wynosi 260 znaków.

Składnia korzystające z nazwy SPN w ciąg połączenia lub atrybuty połączenia jest w następujący sposób:

Składnia

Description

MSSQLSvc /fqdn

Wygenerowane przez dostawca domyślną nazwę główna nazwa usługi wystąpienie domyślnego, gdy używany jest protokół inny niż TCP.

fqdn jest to nazwa domena w pełni kwalifikowana.

MSSQLSvc /fqdn:port

Wygenerowane przez dostawca domyślne nazwy główna nazwa usługi, gdy używany jest protokół TCP.

port to numer portu TCP.

MSSQLSvc /fqdn:InstanceName

Wygenerowane przez dostawca domyślną nazwę główna nazwa usługi nazwanego wystąpienie, gdy używany jest protokół inny niż TCP.

InstanceName jest SQL Server Nazwa wystąpienie.

HOST /fqdn

HOST /MachineName

Nazwy główna nazwa usługi, który jest mapowany do kont wbudowanych komputerów, które są automatycznie rejestrowane przez system Windows.

Username@Domain

Bezpośrednie Specyfikacja konta domena.

Username jest to nazwa konta użytkownika systemu Windows.

Domain jest nazwą domena systemu Windows lub w pełni kwalifikowanej nazwy domena.

MachineName$@Domain

Bezpośrednie Specyfikacja konto komputera.

(Jeśli połączenie jest nawiązywane przez serwer do jest uruchomiona w ramach LOCAL SYSTEM lub Usługa sieciowa kont, aby uwierzytelnianie Kerberos ServerSPN można korzystać w MachineName$@Domain Format.)

KDCKey/MachineName

główna nazwa usługi określone przez użytkownika.

KDCKey jest ciągiem alfanumerycznym, która jest zgodna z regułami klucz Centrum dystrybucji KLUCZY.

Obsługa SPN składnia DB ODBC i specyfikacji OLE

Aby uzyskać informacje dotyczące składni zobacz następujące tematy:

Aby uzyskać informacje na temat przykładowych aplikacji, które wskazują tej funkcji zobacz Considerations for Installing SQL Server Samples and Sample Databases.