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
Az SQL Server közös nyelvi futtatókörnyezeti (CLR) integrációjában a Windows-hitelesítés használata összetett, de biztonságosabb, mint az SQL Server-hitelesítés használata. A Windows-hitelesítés használatakor vegye figyelembe az alábbi szempontokat.
Alapértelmezés szerint a Windowshoz csatlakozó SQL Server-folyamat beolvasja az SQL Server Windows-szolgáltatásfiókjának biztonsági környezetét. A CLR-függvényeket azonban le lehet képezni proxyidentitásra, így a kimenő kapcsolatok más biztonsági környezettel rendelkeznek, mint a Windows-szolgáltatásfiók.
Bizonyos esetekben előfordulhat, hogy a szolgáltatásfiók helyett a SqlContext.WindowsIdentity tulajdonság használatával szeretné megszemélyesíteni a hívót. A WindowsIdentity példány a hívó kódot meghívó ügyfél identitását jelöli, és csak akkor érhető el, ha az ügyfél Windows-hitelesítést használt. Miután beszerezte a WindowsIdentity-példányt, meghívhatja Impersonate a szál biztonsági jogkivonatának módosításához, majd megnyithatja ADO.NET kapcsolatokat az ügyfél nevében.
A SQLContext.WindowsIdentity.Impersonatehívása után nem férhet hozzá a helyi adatokhoz, és nem férhet hozzá a rendszeradatokhoz. Az adatok újbóli eléréséhez fel kell hívnia WindowsImpersonationContext.Undo.
Az alábbi C#-példa bemutatja, hogyan lehet megszemélyesíteni a hívót a SqlContext.WindowsIdentity tulajdonság használatával.
WindowsIdentity clientId = null;
WindowsImpersonationContext impersonatedUser = null;
clientId = SqlContext.WindowsIdentity;
// This outer try block is used to protect from
// exception filter attacks which would prevent
// the inner finally block from executing and
// resetting the impersonation.
try
{
try
{
impersonatedUser = clientId.Impersonate();
if (impersonatedUser != null)
return GetFileDetails(directoryPath);
else return null;
}
finally
{
if (impersonatedUser != null)
impersonatedUser.Undo();
}
}
catch
{
throw;
}
Jegyzet
A megszemélyesítés viselkedésének változásairól az SQL Server 2016adatbázismotor-funkcióinak kompatibilitástörő változásairól
Továbbá, ha beszerezte a Windows-identitáspéldányt, alapértelmezés szerint nem propagálja azt egy másik számítógépre; Ezt a Windows biztonsági infrastruktúra alapértelmezés szerint korlátozza. Létezik azonban egy delegálási nevű mechanizmus, amely lehetővé teszi a Windows-identitások propagálását több megbízható számítógépen. További információ a delegálásról: Kerberos Protokollváltás és Korlátozott delegálás.