Sdílet prostřednictvím


Zabezpečení v LINQ to SQL

Bezpečnostní rizika jsou vždy přítomna, když se připojujete k databázi. I když LINQ to SQL může zahrnovat některé nové způsoby práce s daty v SQL Serveru, neposkytuje žádné další mechanismy zabezpečení.

Řízení přístupu a ověřování

LINQ to SQL nemá vlastní uživatelský model ani ověřovací mechanismy. Pomocí zabezpečení SQL Serveru můžete řídit přístup k databázi, databázovým tabulkám, zobrazením a uloženým procedur, které jsou mapovány na objektový model. Udělte uživatelům minimální požadovaný přístup a pro ověřování uživatelů potřebujete silná hesla.

Informace o mapování a schématu

Informace o mapování typu SQL-CLR a schématu databáze v objektovém modelu nebo externím souboru mapování jsou k dispozici pro všechny s přístupem k těmto souborům v systému souborů. Předpokládejme, že informace o schématu budou k dispozici všem uživatelům, kteří mají přístup k objektovém modelu nebo externímu souboru mapování. Pokud chcete zabránit rozšířenému přístupu k informacím o schématu, použijte mechanismy zabezpečení souborů k zabezpečení zdrojových souborů a souborů mapování.

Připojovací řetězce

Používání hesel v připojovací řetězec by se mělo vyhnout, kdykoli je to možné. Nejen připojovací řetězec bezpečnostní riziko ve svém vlastním právu, ale připojovací řetězec může být také přidán v prostém textu do objektového modelu nebo externího souboru mapování při použití nástroje příkazového řádku Návrhář relací objektů nebo SQLMetal. Každému, kdo má přístup k objektovém modelu nebo externímu souboru mapování prostřednictvím systému souborů, může zobrazit heslo připojení (pokud je součástí připojovací řetězec).

Pokud chcete taková rizika minimalizovat, použijte integrované zabezpečení k vytvoření důvěryhodného připojení k SQL Serveru. Pomocí tohoto přístupu nemusíte ukládat heslo do připojovací řetězec. Další informace naleznete v tématu Zabezpečení SYSTÉMU SQL Server.

Bez integrovaného zabezpečení bude v připojovací řetězec potřeba vymazat textové heslo. Nejlepší způsob, jak zabezpečit připojovací řetězec v rostoucím pořadí rizik, je následující:

  • Používejte integrované zabezpečení.

  • Zabezpečení připojovací řetězec pomocí hesel a minimalizace předávání připojovací řetězec

  • System.Data.SqlClient.SqlConnection Místo připojovací řetězec použijte třídu, protože omezuje dobu expozice. LinQ to SQL System.Data.Linq.DataContext třídy lze vytvořit instanci pomocí SqlConnection.

  • Minimalizujte životnost a dotykové body pro všechny připojovací řetězec.

Viz také