SubscriptionConditionScheduledRule.SqlUserName Property
SqlExpression プロパティで指定されたステートメントを実行するために Notification Services が作成するデータベース ユーザーの名前を取得または設定します。
名前空間: Microsoft.SqlServer.Management.Nmo
アセンブリ: Microsoft.SqlServer.Smo (microsoft.sqlserver.smo.dll 内)
構文
'宣言
Public Property SqlUserName As String
public string SqlUserName { get; set; }
public:
property String^ SqlUserName {
String^ get ();
void set (String^ value);
}
/** @property */
public String get_SqlUserName ()
/** @property */
public void set_SqlUserName (String value)
public function get SqlUserName () : String
public function set SqlUserName (value : String)
プロパティ値
Notification Services が作成するデータベース ユーザー名を示す String です。データベース ユーザー名は、通常、関連付けられたログイン名と一致しますが、一致しなくてもかまいません。
解説
すべての SubscriptionConditionScheduledRule ルールは、指定したデータベース ユーザーのコンテキストで実行されます。権限の低いユーザーを使用することにより、サブスクリプション管理インターフェイスが不正に使用され、他のテーブルにアクセスしたり他のアクションの実行を試行するような条件が挿入された場合に、セキュリティの脅威を最小限に抑えることができます。
Notification Services がユーザー アカウントを作成します。ユーザー アカウントは、アプリケーションの作成前には存在することができません。
データベース ユーザー、および SqlLoginName プロパティを使用して名付けられる、データベース ユーザーに関連付けられた Microsoft SQL Server ログインに対しては、データベースの権限を制限してください。また、アプリケーションが配置されている状態で、ユーザーおよび関連付けられた SqlLogin がサーバーまたはドメインから削除されないようにしてください。削除されると、アプリケーション エラーが発生します。
Notification Services は、Notification Services オブジェクトの必要な権限を許可しますが、入力テーブルまたはビューの権限、および条件アクションで使用するユーザー定義関数の権限は許可しません。これらの権限は、アプリケーションを配置するときにユーザーが許可する必要があります。これらの権限の許可の詳細については、「条件アクションの定義」を参照してください。
使用例
次の例では、条件ベースの定期的なサブスクリプション ルールを定義してサブスクリプション クラスに追加する方法を示します。
// Add a rule to generate condition-based, scheduled notifications
SubscriptionConditionScheduledRule flightConditionScheduledRule =
new SubscriptionConditionScheduledRule(
flightSubscriptions, "FlightConditionScheduledRule");
flightConditionScheduledRule.ActionTimeout =
new TimeSpan(0, 2, 0);
flightConditionScheduledRule.SqlLoginName = "MyLowPrivLogin";
flightConditionScheduledRule.SqlUserName = "MyLowPrivUser";
flightConditionScheduledRule.InputTypeName = "FlightEventChronicle";
flightConditionScheduledRule.InputTypeSchema = "MyAppSchema";
flightConditionScheduledRule.SqlExpression =
"INSERT INTO MyAppSchema.FlightNotifications (SubscriberId, " +
"DeviceName, SubscriberLocale, LeavingFrom, GoingTo, Price) " +
"SELECT [Subscription.SubscriberId], " +
"[Subscription.DeviceName], [Subscription.SubscriberLocale], " +
"[Input.LeavingFrom], [Input.GoingTo], [Input.Price] " +
"FROM MyAppSchema.FlightConditionScheduledRule;";
flightSubscriptions.SubscriptionConditionScheduledRules.Add(
flightConditionScheduledRule);
' Add a rule to generate condition-based, scheduled notifications
Dim flightConditionScheduledRule As _
SubscriptionConditionScheduledRule = _
New SubscriptionConditionScheduledRule( _
flightSubscriptions, "FlightConditionScheduledRule")
flightConditionScheduledRule.ActionTimeout = _
New TimeSpan(0, 2, 0)
flightConditionScheduledRule.SqlLoginName = "MyLowPrivLogin"
flightConditionScheduledRule.SqlUserName = "MyLowPrivUser"
flightConditionScheduledRule.InputTypeName = _
"FlightEventChronicle"
flightConditionScheduledRule.InputTypeSchema = "MyAppSchema"
flightConditionScheduledRule.SqlExpression = _
"INSERT INTO MyAppSchema.FlightNotifications " + _
"(SubscriberId, DeviceName, SubscriberLocale, LeavingFrom, " + _
"GoingTo, Price) SELECT [Subscription.SubscriberId], " + _
"[Subscription.DeviceName], [Subscription.SubscriberLocale], " + _
"[Input.LeavingFrom], [Input.GoingTo], [Input.Price] " + _
"FROM MyAppSchema.FlightConditionScheduledRule;"
flightSubscriptions.SubscriptionConditionScheduledRules.Add( _
flightConditionScheduledRule)
スレッド セーフ
この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
開発プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
対象プラットフォーム
サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。
参照
関連項目
SubscriptionConditionScheduledRule Class
SubscriptionConditionScheduledRule Members
Microsoft.SqlServer.Management.Nmo Namespace
その他の技術情報
定期的なルールの定義
条件アクションの定義
ScheduledRule 要素 (ADF)
ConditionAction 要素 (ADF)