1

サービス ブローカーが有効な SQL Server 2008 データベースに接続する AD ユーザーとして実行されるアプリケーションを開発しています。

サービス ブローカー アプリケーションに使用されているデータベースの dbo のメンバーにそのユーザーを作成しない限り、特定のユーザーに対してアプリを動作させるための適切なアクセス許可を付与するのに問題があります (アプリは操作中にキューを作成/削除します)。

これがアプリを機能させる唯一の方法で、各ユーザーをデータベースの dbo のメンバーとして配置することはできますか?

特定のテーブルで CREATE QUEUE/SERVICE TO user と SELECT を付与するだけでは十分ではないようです。

ありがとう

4

2 に答える 2

1

Service Broker の分散型の性質により、キューとサービスは長期間有効なオブジェクトである必要があります。キューとサービスを作成および削除するアプリケーションが正しく動作する可能性はほとんどありません。

そうは言っても、必要なアクセス許可は、キューを操作するための RECEIVE です (BEGIN CONVERSATION/SEND/RECEIVE)。キューを作成したユーザーはキューの所有者であり、この権限を暗黙的に持っています。ターゲット サービスにメッセージを配信するには、イニシエーター サービスに SEND 権限が必要ですが、証明書に基づくService Broker ダイアログ セキュリティを使用して ID が確立されることに注意してください。ただし、* SQL Server インスタンス内* では、Service Broker の会話セキュリティ モデルは使い慣れたユーザー ID のモデルをエミュレートしますが (つまり、ID を確立するために証明書は必要ありません)、EXECUTE AS contextの対象となります。

どの操作が失敗したかをより具体的に説明していただければ、必要なアクセス許可をより具体的に示すことができます。

于 2013-03-29T15:20:16.447 に答える