SqlClientPermission.Add(String, String, KeyRestrictionBehavior) 方法

定義

為物件新增一個連接字串和一組受限關鍵字 SqlClientPermission

public:
 override void Add(System::String ^ connectionString, System::String ^ restrictions, System::Data::KeyRestrictionBehavior behavior);
public override void Add(string connectionString, string restrictions, System.Data.KeyRestrictionBehavior behavior);
override this.Add : string * string * System.Data.KeyRestrictionBehavior -> unit
Public Overrides Sub Add (connectionString As String, restrictions As String, behavior As KeyRestrictionBehavior)

參數

connectionString
String

連接字串。

restrictions
String

主要的限制。

behavior
KeyRestrictionBehavior

其中一個 KeyRestrictionBehavior 列舉。

備註

使用此方法來設定特定權限物件允許的連線字串。 例如,如果你只允許特定的 連接字串,且不允許其他,可以使用以下程式碼片段:

permission.Add("server=MyServer; database=MyDatabase; Integrated Security=true", "", KeyRestrictionBehavior.AllowOnly)

以下範例允許使用任何資料庫的連線字串,但僅限於名為 MyServer 的伺服器上,使用任意使用者與密碼組合,且不包含其他 連接字串 關鍵字:

permission.Add("server=MyServer;", "database=; user id=; password=;", KeyRestrictionBehavior.AllowOnly)

Warning

Microsoft 不建議直接提供使用者名稱和密碼,因為這是不安全的模式。 若可能,使用更安全的認證流程,如Azure資源Managed Identities,或SQL ServerWindows 驗證

以下範例使用與前一個相同的情境,但允許在連接設定為鏡像的伺服器時使用故障轉移夥伴:

permission.Add("server=MyServer; failover partner=MyMirrorServer", "database=; user id=; password=;", KeyRestrictionBehavior.AllowOnly)

Note

在 ADO.NET 使用程式碼存取安全權限時,正確的做法是從最限制的情況(完全沒有權限)開始,然後加入程式碼需要執行的特定任務所需的具體權限。 相反的模式,從所有權限開始,然後嘗試拒絕特定權限,則不安全,因為同一 連接字串 有多種表達方式。 例如,如果您擁有所有權限,並試圖拒絕使用連接字串 "server=someserver",則字串 "server=someserver.mycompany.com" 仍然被允許使用。 只要以不授與任何權限開始,您就能減少權限集合具有漏洞的機會。

適用於

另請參閱