Udostępnij za pośrednictwem


Personifikacja i poświadczenia dla połączenia

W SQL Server integracja runtime (CLR) języka wspólnego, przy użyciu uwierzytelniania systemu Windows jest złożony, ale jest bezpieczniejsze niż używanie uwierzytelniania programu SQL Server.Podczas korzystania z uwierzytelniania systemu Windows pamiętać o następujące uwagi.

Domyślnie procesu programu SQL Server, który łączy się z systemu Windows nabywa w kontekście zabezpieczeń konta usługa SQL Server w systemie Windows.Jednak jest możliwe do mapowania tożsamości serwera proxy, funkcja CLR tak, aby jego połączenia wychodzące mają w innym kontekście zabezpieczeń niż konto usługa systemu Windows.

W niektórych przypadkach można personifikować wywołującego za pomocą SqlContext.WindowsIdentity Właściwość zamiast uruchomionej z konta usługa.WindowsIdentity Wystąpienie reprezentuje tożsamość klienta, którego kod wywołujący wywołania i jest dostępna tylko, gdy klient jest używane uwierzytelnianie systemu Windows.Po uzyskaniu WindowsIdentity wystąpienie, można wywołać Impersonate , aby zmienić tokenu zabezpieczeń wątek, a następnie otwórz ADO.Połączenia SIECIOWE w imieniu klient.

Po wywołaniu SQLContext.WindowsIdentity.Impersonate, dostęp do danych lokalnych i nie można uzyskać dostępu danych systemu.Dostęp do danych, trzeba zadzwonić do WindowsImpersonationContext.Undo.

Poniższy przykład ilustruje personifikować wywołującego za pomocą SqlContext.WindowsIdentity właściwość.

Visual C#

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;
}

Ostrzeżenie

Aby uzyskać informacje dotyczące zmiany zachowanie personifikacji, zobacz Dzielenie zmienia funkcje aparatu bazy danych programu SQL Server 2008 R2.

Ponadto jeśli uzyskano Microsoft wystąpienie tożsamość systemu Windows, domyślnie nie można propagować wystąpienia do innego komputera; Infrastruktura zabezpieczeń systemu Windows ogranicza, domyślnie.Jednakże istnieje mechanizm, zwany "Przedstawicielstwo" na wielu komputerach zaufanych, który umożliwia propagacji tożsamości systemu Windows.Dowiedz się więcej na temat delegowania w TechNet artykuł, "przejścia protokołu Kerberos i ograniczone delegowanie".

Zobacz także

Koncepcje