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

关键限制。

注解

使用此方法可以配置特定权限对象允许的连接字符串。 例如,如果只想允许特定的连接字符串,而只允许其他连接字符串,请使用以下代码片段:

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

以下示例允许使用任何数据库的连接字符串,但仅在名为 MyServer 的服务器上使用任何用户和密码组合,并且不包含任何其他连接字符串关键字:

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

以下示例使用与上述相同的方案,但允许在连接到配置为镜像的服务器时使用的故障转移伙伴:

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

注意

对 ADO.NET 使用代码访问安全权限时,正确的模式是先从最严格的情况开始, (完全没有权限) ,然后添加代码需要执行的特定任务所需的特定权限。 相反的模式(从所有权限开始,然后尝试拒绝特定权限)是不安全的,因为有多种方法可以表达相同的连接字符串。 例如,如果一开始就授予所有权限,然后尝试拒绝使用连接字符串“server=someserver”,则仍将允许使用“server=someserver.mycompany.com”。 通过在开始时始终不授予任何权限,可以降低权限集中存在漏洞的几率。

适用于