共用方式為


LINQ to SQL 中的安全性

當您連線到資料庫時,一律會出現安全性風險。 雖然 LINQ to SQL 可能包含一些在 SQL Server 中使用數據的新方法,但不會提供任何其他安全性機制。

訪問控制和驗證

LINQ to SQL 沒有自己的使用者模型或驗證機制。 使用 SQL Server 安全性來控制對應至物件模型之資料庫、資料庫數據表、檢視表和預存程式的存取。 授與使用者所需的最低存取權,並要求強密碼進行用戶驗證。

映射和結構資訊

SQL-CLR 物件模型或外部對應檔案中的類型對應和資料庫結構資訊,凡在檔案系統中能存取這些檔案的所有人都可以使用。 假設架構資訊可供所有可存取物件模型或外部對應檔案的人員使用。 若要防止更廣泛存取架構資訊,請使用檔案安全性機制來保護來源檔案和對應檔案。

連接字串

應盡可能避免在連接字串中使用密碼。 連接字串不僅具有本身的安全性風險,而且在使用對象關係型設計工具或 SQLMetal 命令行工具時,也可以以純文字新增連接字串至物件模型或外部對應檔。 透過文件系統存取物件模型或外部對應檔案的任何人都可以看到連線密碼(如果連接字串中包含的話)。

若要將這類風險降至最低,請使用整合式安全性來建立與 SQL Server 的受信任連線。 使用此方法時,您不需要將密碼儲存在連接字串中。 如需詳細資訊,請參閱 SQL Server 安全性

如果沒有整合式安全性,連接字串中將需要純文本密碼。 協助保護您的連接字串的最佳方式,按風險從低到高的順序如下:

  • 使用整合式安全性。

  • 使用密碼保護連接字串的安全,並將傳遞的連接字串降到最低。

  • 使用 類別 System.Data.SqlClient.SqlConnection ,而不是連接字串,因為它會限制曝光的持續時間。 LINQ to SQL System.Data.Linq.DataContext 類別可以實例化使用 SqlConnection

  • 將所有連接字串的存留期和接觸點降到最低。

另請參閱