Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A Kerberos-hitelesítés SQL Serverrel való használatához az alábbi feltételek mindegyikének teljesülnie kell:
Az ügyfél- és kiszolgálószámítógépeknek ugyanahhoz a Windows-tartományhoz vagy megbízható tartományokhoz kell tartozniük.
Egy Szolgáltatói Nevet (SPN) regisztrálni kell az Active Directoryban, amely a Kulcselosztó Központ szerepét tölti be egy Windows-tartományban. A szolgáltatásnév a regisztráció után hozzárendelődik az SQL Server-példány szolgáltatását elindító Windows-fiókhoz. Ha az SPN regisztráció nem történt meg vagy sikertelen, a Windows biztonsági réteg nem tudja meghatározni az SPN-hez társított fiókot, és a Kerberos-hitelesítés nem kerül alkalmazásra.
Jegyzet
Ha a kiszolgáló nem tudja automatikusan regisztrálni az SPN-t, akkor az SPN-t manuálisan kell regisztrálni. Lásd a manuális SPN-regisztráció.
A sys.dm_exec_connections dinamikus felügyeleti nézet lekérdezésével ellenőrizheti, hogy a kapcsolat Kerberost használ-e. Futtassa a következő lekérdezést, és ellenőrizze a auth_scheme oszlop értékét, amely KERBEROS, ha a Kerberos engedélyezve van.
SELECT auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
Borravaló
Microsoft Kerberos Configuration Manager for SQL Server egy diagnosztikai eszköz, amely segít elháríteni az SQL Serverrel kapcsolatos Kerberos-kapcsolati problémákat. További információ: Microsoft Kerberos Configuration Manager for SQL Server.
Az SPN szerepe a hitelesítésben
Amikor egy alkalmazás megnyitja a kapcsolatot, és Windows-hitelesítést használ, az SQL Server natív kliense átadja az SQL Server számítógép nevét, a példány nevét, és opcionálisan egy SPN-t. Ha a kapcsolat megfelel egy SPN-nek (szolgáltatói név), a rendszer változtatás nélkül használja.
Ha a kapcsolat nem ad át SPN-t, a rendszer a használt protokoll, a kiszolgálónév és a példánynév alapján egy alapértelmezett SPN-t hoz létre.
Az SPN-t mindkét fenti esetben továbbítják a kulcsterjesztési központnak, hogy megszerezze a kapcsolat hitelesítéséhez szükséges biztonsági jogkivonatot. Ha egy biztonsági jogkivonat nem érhető el, a hitelesítés NTLM-et használ.
Az SPN az a név, amellyel az ügyfél egyedileg azonosítja egy szolgáltatás példányát. A Kerberos hitelesítési szolgáltatás spN használatával hitelesíthet egy szolgáltatást. Amikor egy ügyfél csatlakozni szeretne egy szolgáltatáshoz, megkeresi a szolgáltatás egy példányát, összeállít egy SPN-t az adott példányhoz, csatlakozik a szolgáltatáshoz, és megadja a szolgáltatás SPN-jét a hitelesítéshez.
Jegyzet
A cikkben szereplő információk a klaszterezést használó SQL Server-konfigurációkra is vonatkoznak.
A Windows-hitelesítés a felhasználók által az SQL Serveren való hitelesítés előnyben részesített módszere. A Windows-hitelesítést használó ügyfeleket az NTLM vagy a Kerberos hitelesíti. Active Directory-környezetben a Kerberos-hitelesítést mindig először megkísérlik.
Engedélyek
Az Adatbázismotor szolgáltatás elindulásakor megpróbálja regisztrálni a szolgáltatásnév (SPN) nevét. Tegyük fel, hogy az SQL Servert indító fiók nem rendelkezik engedéllyel az SPN Active Directory Domain Servicesben való regisztrálásához. Ebben az esetben ez a hívás meghiúsul, és a rendszer egy figyelmeztető üzenetet naplóz az alkalmazás eseménynaplójában és az SQL Server hibanaplójában is.
Az egyszerű szolgáltatásnév regisztrálásához az adatbázismotornak egy beépített fiókban kell futnia, például Local System (nem ajánlott), vagy NETWORK SERVICE, vagy olyan fiókban, amely rendelkezik engedéllyel az egyszerű szolgáltatásnév regisztrálásához. Az egyszerű szolgáltatásnév (SPN) regisztrálható tartományi rendszergazdai fiókkal, de éles környezetben ez nem javasolt. Az SQL Servert virtuális fiók vagy felügyelt szolgáltatásfiók (MSA) használatával is futtathatja. A virtuális fiókok és az MSA-k egyaránt regisztrálhatnak Szolgáltatásfőneveket. Ha az SQL Server nem ezen fiókok egyike alatt fut, az egyszerű szolgáltatásnév nincs regisztrálva az indításkor, és a tartományi rendszergazdának manuálisan kell regisztrálnia az egyszerű szolgáltatásnevet.
SPN-formátumok
Az SPN formátum támogatja a Kerberos-hitelesítést TCP/IP-címen, elnevezett csöveken és megosztott memórián. Az elnevezett és az alapértelmezett példányok esetén támogatott SPN-formátumok a következők.
Elnevezett példány
MSSQLSvc/<FQDN>:[<port> | <példánynév>], ahol:
-
MSSQLSvca regisztrálandó szolgáltatás. -
<FQDN>a kiszolgáló teljesen meghatározott tartományneve. -
<port>a TCP-port száma. -
<instancename>az SQL Server-példány neve.
-
Alapértelmezett példány
MSSQLSvc/<FQDN>:<port> | MSSQLSvc/<FQDN>, ahol:
-
MSSQLSvca regisztrálandó szolgáltatás. -
<FQDN>a kiszolgáló teljesen meghatározott tartományneve. -
<port>a TCP-port száma.
-
| SPN formátum | Leírás |
|---|---|
MSSQLSvc/<FQDN>:<port>
1 |
A szolgáltató által létrehozott alapértelmezett SPN a TCP használatakor.
<port> TCP-portszám. |
MSSQLSvc/<FQDN> |
A szolgáltató által létrehozott alapértelmezett SPN egy alapértelmezett példányhoz, amikor egy másik protokollt használnak a TCP helyett.
<FQDN> egy teljesen minősített tartománynév. |
MSSQLSvc/<FQDN>:<instancename> |
A szolgáltató által létrehozott alapértelmezett SPN egy elnevezett példányhoz, ha a protokoll nem TCP-t használ.
<instancename> az SQL Server egy példányának neve. |
1 Az SPN formátumhoz nincs szükség portszámra. A többportos kiszolgálók vagy a portszámokat nem használó protokollok továbbra is használhatják a Kerberos-hitelesítést.
Olyan TCP/IP-kapcsolat esetén, ahol a TCP-port szerepel az egyszerű szolgáltatásnévben, az SQL Servernek engedélyeznie kell a TCP protokoll, hogy a felhasználó Kerberos-hitelesítéssel csatlakozzon.
Automatikus SPN-regisztráció
Amikor elindul az SQL Server adatbázismotorjának egy példánya, az SQL Server megpróbálja regisztrálni az SPN-t az SQL Server szolgáltatáshoz. Amikor a példány leáll, az SQL Server megpróbálja megszüntetni a SPN regisztrációját. TCP/IP-kapcsolat esetén az SPN a MSSQLSvc/<FQDN>:<tcpport>formátumban van regisztrálva. A rendszer mind a megnevezett példányokat, mind az alapértelmezett példányokat MSSQLSvcregisztrálja, a példányok megkülönböztetéséhez a <tcpport> értékre támaszkodva.
Kerberost támogató egyéb kapcsolatok esetében a szolgáltatás-azonosító név (SPN) egy megadott példány formátumban MSSQLSvc/<FQDN>:<instancename> van regisztrálva. Az alapértelmezett példány regisztrálásának formátuma MSSQLSvc/<FQDN>.
Az SQL Server indítási fiókjának engedélyt adni az SPN (szolgáltatás példány neve) regisztrálásához és módosításához, hajtsa végre a következő lépéseket:
A tartományvezérlő gépen lépjen a Active Directory - felhasználók és számítógépekszolgáltatásba.
Válassza a Nézet > Speciálislehetőséget.
A Számítógépekterületen keresse meg az SQL Server-számítógépet, majd kattintson a jobb gombbal, és válassza a Tulajdonságoklehetőséget.
Válassza a Biztonsági lapot, majd válassza Speciálislehetőséget.
Ha az SQL Server indítási fiókja nem szerepel a listában, válassza a Hozzáadás lehetőséget. A hozzáadás után hajtsa végre a következő lépéseket:
Válassza ki a fiókot, és válassza Szerkesztéslehetőséget.
Az Engedélyek csoportban válassza az Érvényesített írás a szolgáltatásnévhez lehetőséget.
Görgessen le és a Tulajdonságok csoportban válassza a következőt:
- Olvasás: servicePrincipalName
- ServicePrincipalName írása
Válassza kétszer OK lehetőséget.
Zárja be Active Directory Felhasználók és Számítógépek.
Ha a szolgáltatásfiók nem rendelkezik az ezekhez a műveletekhez szükséges engedélyekkel, manuális beavatkozásra lehet szükség az SPN (szolgáltatás felelő neve) regisztrálásához vagy a regisztráció megszüntetéséhez.
Manuális egyszerű szolgáltatásnév-regisztráció
Az SPN kézi regisztrálásához használhatja a Windows rendszerbe beépített setspn eszközt.
setspn.exe egy parancssori eszköz, amely lehetővé teszi a Szolgáltatásnévnevek (SPN) címtártulajdonság olvasását, módosítását és törlését. Ez az eszköz azt is lehetővé teszi, hogy megtekintse az aktuális egyszerű szolgáltatásneveket, alaphelyzetbe állítsa a fiók alapértelmezett egyszerű szolgáltatásneveit, és kiegészítő egyszerű szolgáltatásneveket vegyen fel vagy töröljön.
A setspn eszközről, a szükséges engedélyekről és példákról a setspncímű cikkben olvashat.
Az alábbi példa azt a szintaxist szemlélteti, amellyel manuálisan regisztrálhat spN-t egy TCP/IP-kapcsolathoz tartományi felhasználói fiók használatával:
setspn -S MSSQLSvc/myhost.redmond.microsoft.com:1433 redmond\accountname
Jegyzet
Ha egy SPN már létezik, azt törölni kell az újbóli regisztráció előtt. Ezt a kapcsolóval -D használatával teheti meg. Az alábbi példák bemutatják, hogyan regisztrálhat manuálisan egy új példányalapú SPN-t. Tartományi felhasználói fiókot használó alapértelmezett példány esetén használja a következőt:
setspn -S MSSQLSvc/myhost.redmond.microsoft.com redmond\accountname
Névvel ellátott példány esetén ezt használja:
setspn -S MSSQLSvc/myhost.redmond.microsoft.com:instancename redmond\accountname
Az Always On rendelkezésre állási csoport konfigurációiról további információt a Figyelők és a Kerberos (SPN-ek)című témakörben talál.
Ügyfélkapcsolatok
Az ügyfélillesztők támogatják a felhasználó által megadott szolgáltatási főneveket (SPN-eket). Ha azonban egy szerver alapú név nincs megadva, az automatikusan generálódik az ügyfélkapcsolat típusa alapján. TCP-kapcsolat esetén egy MSSQLSvc/FQDN:[<port>] formátumú szolgáltatásnevet használnak mind a névvel ellátott, mind az alapértelmezett példányokhoz.
Az elnevezett csövek és a megosztott memóriakapcsolatok esetében a MSSQLSvc/<FQDN>:<instancename> formátumú szolgáltatásnevet használják a nevesített példányhoz, a MSSQLSvc/<FQDN> pedig az alapértelmezett példányhoz.
Szolgáltatásfiók használata szolgáltatási főnévként (SPN)
A szolgáltatásfiókok szolgáltatásfőazonosítóként is használhatók. A Kerberos-hitelesítés kapcsolatattribútumán keresztül vannak megadva, és a következő formátumokat kell használnia:
tartományi felhasználói fiók
username\@domainvagydomain\usernamemachine$\@domainvagyhost\FQDNszámítógépes tartományi fiókhoz, példáulLocal SystemvagyNETWORK SERVICE.
A kapcsolat hitelesítési módjának meghatározásához hajtsa végre a következő lekérdezést.
SELECT net_transport, auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
A hitelesítés alapértelmezései
Az alábbi táblázat az SPN-regisztrációs forgatókönyvek alapján a használt hitelesítési alapértelmezett értékeket ismerteti.
| Forgatókönyv | Hitelesítési módszer |
|---|---|
Az SPN társítva van a megfelelő tartományi fiókkal, virtuális fiókkal, MSA-val vagy beépített fiókkal. Például Local System vagy NETWORK SERVICE. |
A helyi kapcsolatok NTLM-et, a távoli kapcsolatok kerberost használnak. |
| Az SPN a megfelelő tartományi fiók, virtuális fiók, MSA vagy beépített fiók. | A helyi kapcsolatok NTLM-et, a távoli kapcsolatok kerberost használnak. |
| Az SPN helytelen tartományi fiókra, virtuális fiókra, MSA-ra vagy beépített fiókra van leképezve. | A hitelesítés sikertelen. |
| A szolgáltatásnév vizsgálata sikertelen, vagy nem felel meg helyes tartományi fióknak, virtuális fióknak, MSA-nak vagy beépített fióknak, esetleg nem helyes tartományi fiók, virtuális fiók, MSA vagy beépített fiók. | A helyi és a távoli kapcsolatok NTLM-et használnak. |
Jegyzet
Helyes azt jelenti, hogy a regisztrált SPN által leképezett fiók az az a fiók, amely alatt az SQL Server szolgáltatás fut.
Megjegyzések
A dedikált rendszergazdai kapcsolat (DAC) egy példánynév-alapú szolgáltatásnév-princípiumot használ. A Kerberos-hitelesítés DAC-tal is használható, ha az SPN (szolgáltatásnév) regisztrációja sikeresen megtörtént. Alternatív megoldásként megadhatja a fiók nevét egyszerű szolgáltatásnévként.
Ha az SPN-regisztráció sikertelen az indítás során, a rendszer rögzíti ezt a hibát az SQL Server hibanaplójában, és az indítás folytatódik.
Ha az SPN-regisztráció leáll a leállítás során, a rendszer rögzíti ezt a hibát az SQL Server hibanaplójában, és a leállítás folytatódik.
Kapcsolódó tartalom
- Szolgáltatás Főnév (SPN) támogatása az SQL Server Native Client ügyfélkapcsolatokban
- Szolgáltatásnevek (SPNs) ügyfélkapcsolatokban (OLE DB)
- Szolgáltatásnév (SPN) az ügyfélkapcsolatokban (ODBC)
- Az SQL Server natív ügyfélfunkciói
- Kerberos-hitelesítési problémák kezelése Reporting Services-környezetben