次の方法で共有


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 列挙体の 1 つ。

注釈

このメソッドを使用して、特定のアクセス許可オブジェクトで許可される接続文字列を構成します。 たとえば、特定の接続文字列のみを許可し、それ以外は許可しない場合は、次のコード フラグメントを使用します。

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

次の例では、任意のデータベースを使用する接続文字列を許可しますが、MyServer という名前のサーバーでのみ、ユーザーとパスワードの組み合わせを使用し、他の接続文字列キーワードを含めなくなります。

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

警告

セキュリティで保護されていないパターンであるため、ユーザー名とパスワードを直接指定することはお勧めしません。 可能な場合は、Azure リソースのマネージド ID の 、SQL Server の Windows 認証 など、より安全な認証フローを使用します。

次の例では、前のシナリオと同じシナリオを使用しますが、ミラーリング用に構成されたサーバーに接続するときに使用できるフェールオーバー パートナーを使用できます。

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

手記

ADO.NET にコード アクセス セキュリティアクセス許可を使用する場合、正しいパターンは、最も制限の厳しいケース (アクセス許可は一切なし) から始めてから、コードが実行する必要がある特定のタスクに必要な特定のアクセス許可を追加することです。 すべてのアクセス許可から始まり、特定のアクセス許可を拒否しようとする逆のパターンは、同じ接続文字列を表す多くの方法があるため、セキュリティで保護されていません。 たとえば、すべてのアクセス許可から始めて、接続文字列 "server=someserver" の使用を拒否しようとすると、文字列 "server=someserver.mycompany.com" は引き続き許可されます。 常にアクセス許可をまったく付与しないから始めることで、アクセス許可セットに穴が開く可能性を減らすことができます。

適用対象

こちらもご覧ください