SqlClientPermission.Add(String, String, KeyRestrictionBehavior) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
為物件新增一個連接字串和一組受限關鍵字 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資源
以下範例使用與前一個相同的情境,但允許在連接設定為鏡像的伺服器時使用故障轉移夥伴:
permission.Add("server=MyServer; failover partner=MyMirrorServer", "database=; user id=; password=;", KeyRestrictionBehavior.AllowOnly)
Note
在 ADO.NET 使用程式碼存取安全權限時,正確的做法是從最限制的情況(完全沒有權限)開始,然後加入程式碼需要執行的特定任務所需的具體權限。 相反的模式,從所有權限開始,然後嘗試拒絕特定權限,則不安全,因為同一 連接字串 有多種表達方式。 例如,如果您擁有所有權限,並試圖拒絕使用連接字串 "server=someserver",則字串 "server=someserver.mycompany.com" 仍然被允許使用。 只要以不授與任何權限開始,您就能減少權限集合具有漏洞的機會。