Udostępnij za pośrednictwem


Zabezpieczenia w składniku LINQ to SQL

Zagrożenia bezpieczeństwa są zawsze obecne podczas nawiązywania połączenia z bazą danych. Mimo że LINQ to SQL może obejmować kilka nowych sposobów pracy z danymi w programie SQL Server, nie zapewnia żadnych dodatkowych mechanizmów zabezpieczeń.

Kontrola dostępu i uwierzytelnianie

LINQ to SQL nie ma własnego modelu użytkownika ani mechanizmów uwierzytelniania. Użyj zabezpieczeń programu SQL Server, aby kontrolować dostęp do bazy danych, tabel baz danych, widoków i procedur składowanych mapowanych na model obiektów. Udziel użytkownikom minimalnego wymaganego dostępu i wymaga silnego hasła do uwierzytelniania użytkownika.

Mapowanie i informacje o schemacie

Mapowanie typów SQL-CLR i informacje o schemacie bazy danych w modelu obiektów lub pliku mapowania zewnętrznego są dostępne dla wszystkich z dostępem do tych plików w systemie plików. Załóżmy, że informacje o schemacie będą dostępne dla wszystkich osób, które mogą uzyskać dostęp do modelu obiektów lub pliku mapowania zewnętrznego. Aby zapobiec szerszemu dostępowi do informacji o schemacie, użyj mechanizmów zabezpieczeń plików w celu zabezpieczenia plików źródłowych i plików mapowania.

Parametry połączenia

Korzystanie z haseł w parametry połączenia należy unikać zawsze, gdy jest to możliwe. Nie tylko jest parametry połączenia zagrożenie bezpieczeństwa samodzielnie, ale parametry połączenia można również dodać w postaci zwykłego tekstu do modelu obiektów lub pliku mapowania zewnętrznego podczas korzystania z narzędzia wiersza polecenia Object Relational Projektant lub SQLMetal. Każda osoba mająca dostęp do modelu obiektów lub pliku mapowania zewnętrznego za pośrednictwem systemu plików może zobaczyć hasło połączenia (jeśli znajduje się w parametry połączenia).

Aby zminimalizować takie zagrożenia, użyj zintegrowanych zabezpieczeń, aby nawiązać zaufane połączenie z programem SQL Server. Korzystając z tego podejścia, nie trzeba przechowywać hasła w parametry połączenia. Aby uzyskać więcej informacji, zobacz Zabezpieczenia programu SQL Server.

W przypadku braku zintegrowanych zabezpieczeń w parametry połączenia będzie potrzebne hasło w postaci zwykłego tekstu. Najlepszym sposobem na zabezpieczenie parametry połączenia w kolejności rosnącej ryzyka jest następująca:

  • Użyj zintegrowanych zabezpieczeń.

  • Zabezpieczanie parametry połączenia przy użyciu haseł i minimalizowanie przekazywania parametry połączenia.

  • System.Data.SqlClient.SqlConnection Należy użyć klasy zamiast parametry połączenia, ponieważ ogranicza czas trwania ekspozycji. Klasę LINQ to SQL System.Data.Linq.DataContext można utworzyć przy użyciu klasy SqlConnection.

  • Zminimalizuj okresy istnienia i punkty dotykowe dla wszystkich parametry połączenia.

Zobacz też