Obsługa głównej nazwy usługi (główna nazwa usługi) w połączeń klientów
Począwszy od SQL Server 2008, obsługę główne nazwy usługa (SPN) została rozszerzona, aby włączyć uwierzytelnianie wzajemne między wszystkie protokoły.W poprzednich wersjach SQL Server, główna nazwa usługi były obsługiwane tylko dla 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.
SPN są używane przez protokół uwierzytelnianie, aby określić konto, w którym SQL Server uruchamia wystąpienie.Jeśli konto wystąpienie jest znany, uwierzytelnianie Kerberos może służyć do zapewnienia wzajemnego uwierzytelniania przez klient i serwera.Jeśli wystąpienie konto nie jest znana, uwierzytelnianie NTLM, która 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 rejestracja zakończy się niepowodzeniem, jeśli istnieją niewystarczające prawa dostępu dla konta, który usiłuje zarejestrować nazwy SPN.
Konta domeny 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 makes secure authentication more manageable and reliable by allowing clients to directly specify the SPN to use.
Ostrzeżenie
Nazwa główna nazwa usługi określonej przez aplikację klient jest używany tylko po nawiązaniu połączenia z zabezpieczenia zintegrowane systemu Windows NT.
Aby uzyskać więcej informacji na temat protokołu Kerberos zobacz następujące artykuły:
Użycie
W poniższej tabela opisano najbardziej typowe scenariusze, w których klient aplikacji można włączyć bezpieczne uwierzytelnianie.
Scenariusz |
Opis |
---|---|
Starszych aplikacji nie określa nazwy główna nazwa usługi. |
W tym scenariuszu zgodności gwarantuje, że zostaną wprowadzone żadne zmiany zachowania aplikacji opracowanych dla wcześniejszych wersji programu SQL Server.Jeśli główna nazwa usługi nie zostanie określony, wniosek opiera się na generowanej nazwy główna nazwa usługi i nie ma wiedza która metoda uwierzytelnianie jest używana. |
Aplikacja klient przy użyciu bieżącej wersja SQL Server Native klient określa nazwy główna nazwa usługi w parametry połączenia jako domena konta użytkownika lub komputera, główna nazwa usługi danego wystąpienie lub jako ciąg znaków zdefiniowanych przez użytkownika. |
ServerSPN Mogą być używane słowa kluczowego dostawca, inicjowania lub połączenia ciąg wykonać następujące czynności:
FailoverPartnerSPN Słowa kluczowego można określić nazwy główna nazwa usługi serwera partner pracy awaryjnej.Zakres wartości klucz usługi Active Directory i konta jest taka sama jak wartości, można określić dla serwer dublowany. |
Aplikacji ODBC określa nazwy główna nazwa usługi jako atrybut połączenia dla serwer dublowany lub serwer partner pracy awaryjnej. |
Atrybut połączenia SQL_COPT_SS_SERVER_SPN można określić nazwy główna nazwa usługi dla połączenia do serwer dublowany. 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 nazwy główna nazwa usługi jako właściwość inicjowania źródło danych dla serwer dublowany lub serwer partner pracy awaryjnej. |
właściwość połączenia SSPROP_INIT_SERVER_SPN w DBPROPSET_SQLSERVERDBINIT zestaw właściwość można określić 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 nazwy główna nazwa usługi serwera lub serwera partner pracy awaryjnej w nazwa źródło danych ODBC (DSN). |
Nazwa główna nazwa usługi może być określony w ODBC DSN za pomocą okna dialogowego konfiguracji DSN. |
Użytkownik określa nazwy główna nazwa usługi serwera lub serwera partner pracy awaryjnej w OLE DB Łącze danych lub logowania okno dialogowe. |
Można określić nazwy główna nazwa usługi w Łącze danych lub logowania okno dialogowe.Logowania okno dialogowe może być używany z ODBC lub OLE DB. |
Aplikacji ODBC określa metoda uwierzytelnianie używany do ustanawiania połączenia. |
Gdy połączenie zostało pomyślnie otwarte, aplikacja może zapytać atrybut połączenia SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD do określenia, która metoda uwierzytelnianie został użyty.Wartości zostaną uwzględnione, ale nie są ograniczone, NTLM i Kerberos. |
Aplikacja OLE DB określa metoda uwierzytelnianie używany do ustanawiania połączenia. |
Gdy połączenie zostało pomyślnie otwarte, aplikacja może wysłać kwerendę do właściwość połączenia SSPROP_AUTHENTICATION_METHOD w DBPROPSET_SQLSERVERDATASOURCEINFO Właściwość zestaw do określenia, która metoda uwierzytelnianie został użyty.Wartości zostaną uwzględnione, ale nie są ograniczone, NTLM i Kerberos. |
Praca awaryjna
Nazwy SPN nie są przechowywane w pamięci podręcznej pracy awaryjnej i nie mogą być przekazywane między połączeniami.Nazwy SPN będą używane na wszystkich prób połączenia z kapitału i partner, gdy określony w połączeniu z ciąg lub atrybutów połączenia.
Pula połączeń
Aplikacje należy pamiętać, że Określanie nazwy SPN w niektórych, ale nie wszystkie ciągi połączeń może przyczynić się do puli fragmentacji.
Aplikacje programowo określić nazwy SPN jako atrybuty połączenia, zamiast określania połączenia ciąg słowa kluczowe.Może to ułatwić zarządzanie fragmentacji puli połączeń.
Aplikacje powinni być świadomi tej nazwy SPN w związku z ciągs może być zastąpiona przez ustawienie odpowiednich atrybuty połączenia, ale połączenia ciągs używane przez buforowanie połączeń zastosuje połączenie ciąg wartości dla celów buforowania.
Zachowanie serwerowe niskiego poziomu
Nowe zachowanie połączenia jest implementowana przez klient; dlatego nie jest specyficzne dla wersja SQL Server.
Serwery połączone i delegowania
Po utworzeniu połączonych serwerów, @provstr parametr sp_addlinkedserver można określić serwer i pracy awaryjnej partner nazwy SPN.W ten sposób korzyści są takie same, jak podając nazwy SPN w ciągi połączeń klient: Jest prostsze i bardziej niezawodny do ustanawiania połączeń, które korzystają z uwierzytelnianie Kerberos.
Delegowanie połączonych serwerów wymaga uwierzytelnianie Kerberos.
Listę wymagań, zobacz Konfigurowanie serwerów połączonych w kwestii delegowania.
Aspekty zarządzania SPN określony przez aplikacje
Przy wyborze czy określać nazwy SPN w aplikacji (poprzez ciągów połączenia) lub programowo za pomocą właściwości połączenia (zamiast polegać na dostawca defalt generowane nazwy SPN), należy rozważyć następujące czynniki:
Zabezpieczenia: Określonej nazwy główna nazwa usługi ujawnienia informacji, który jest chroniony?
Niezawodność: Aby umożliwić użycie domyślnej nazwy SPN, konto usługa, w której SQL Server uruchamia wystąpienie musi mieć wystarczające uprawnienia, aby zaktualizować usługa Active Directory w Centrum dystrybucji KLUCZY.
Przejrzystość wygody i lokalizacji: Jak będzie SPN aplikacji wpływu, jeśli przenosi swoją bazę danych z innym SQL Server wystąpienie?Dotyczy to serwer dublowany i jego partner pracy awaryjnej, jeśli używasz dublowanie bazy danych.Jeśli zmiana serwera oznacza SPN musi zostać zmienione, jak będzie to wpływ na aplikacje? Wszelkie zmiany zarządzania?
Określanie nazwy główna nazwa usługi
Można określić nazwy główna nazwa usługi w oknach dialogowych i kodu.W tej sekcji omówiono, w jaki sposób można określić nazwy główna nazwa usługi.
Maksymalna długość nazwy główna nazwa usługi wynosi 260 znaków.
Składnia nazwy SPN używany w związku z ciąg lub atrybuty połączenia jest następująca:
Składnia |
Opis |
---|---|
MSSQLSvc /fqdn |
Generowane dostawca domyślny główna nazwa usługi dla wystąpienie domyślne, gdy używany jest protokół inny niż TCP. fqdn jest w pełni kwalifikowanej nazwy domena. |
MSSQLSvc /fqdn:port |
Generowane dostawca domyślny główna nazwa usługi, gdy używany jest protokół TCP. port jest numerem portu TCP. |
MSSQLSvc /fqdn:InstanceName |
Generowanych przez dostawca domyślną nazwę główna nazwa usługi wystąpienie nazwane, jeśli używany jest protokół inny niż TCP. InstanceNameis a SQL Server wystąpienie name. |
HOST /fqdn HOST /MachineName |
Nazwa główna nazwa usługi mapuje kont wbudowanych komputerów, które są automatycznie rejestrowane przez system Windows. |
Username@Domain |
Specyfikacja bezpośrednie konta domena. Username jest nazwą konta użytkownika systemu Windows. Domain jest nazwą domena systemu Windows lub w pełni kwalifikowaną nazwę domena. |
MachineName$@Domain |
Specyfikacja bezpośrednie konta komputera. (Jeśli łączysz się do serwera jest uruchomiony w ramach systemu lokalnego lub konta Usługa sieciowa, aby uzyskać uwierzytelnianie Kerberos ServerSPN can be in the MachineName$@Domain format.) |
KDCKey/MachineName |
główna nazwa usługi określone przez użytkownika. KDCKey alfanumeryczny jest ciąg , spełnia reguły dla klucz KDC. |
ODBC i OLE DB składnia obsługi nazwy SPN
Informacje dotyczące składni można znaleźć w następujących tematach:
Informacje dla przykładowych aplikacji, które wykazują tej funkcji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.