Udostępnij przez


Zabezpieczenia w 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, które są mapowane na Twój model obiektowy. Udziel użytkownikom minimalnego wymaganego dostępu i wymaga silnego hasła do uwierzytelniania użytkownika.

Mapowanie i informacje o schemacie

SQL-CLR mapowanie typów 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

Używanie haseł w parametrach połączenia należy unikać zawsze, gdy jest to możliwe. Nie tylko parametry połączenia są zagrożeniem bezpieczeństwa, ale parametry połączenia mogą być również dodawane w postaci zwykłego tekstu do modelu obiektów lub pliku mapowania zewnętrznego podczas korzystania z narzędzia wiersza polecenia Object Relational Designer 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 jest ono uwzględnione w parametrach 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 parametrach połączenia. Aby uzyskać więcej informacji, zobacz Zabezpieczenia programu SQL Server.

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

  • Użyj zintegrowanych zabezpieczeń.

  • Zabezpieczanie parametrów połączenia przy użyciu haseł i minimalizowanie przekazywania parametrów połączenia.

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

  • Zminimalizuj czas życia i punkty styku dla wszystkich ciągów połączenia.

Zobacz także