要件:
SQL Server のデータで実行される SSIS プロジェクトがあり、おそらく統合認証を使用して SQL Server にログインします。このプロジェクトには、エンド ユーザーが選択クエリを 1 つのデータフローのソースとして追加できるセクションが 1 つあります。(この製品では、ユーザーは構成ファイルにデータの分類とフィルタリングの種類の規則を追加できます)。
ユーザーが提供するこれらのクエリを、読み取り専用アクセスの制限されたコンテキストで実行したいと考えています。クエリ にDELETE
orを追加してデータベースを破棄することはできません。DROP
最初のパス ソリューション:
データベースに読み取り専用ユーザーを作成しEXECUTE AS ... WITH NO REVERT
、クエリのコンテキストを読み取り専用ユーザーに制限するために使用します。残念ながら、これは完全には機能しません。SSIS はデータ ソース コンポーネントで準備済みステートメントを使用しWITH NO REVERT
ますが、SQL Server では準備済みステートメントで許可されていません。
質問:
OLEDB データ ソース コンポーネントで準備済みステートメントの代わりにアドホック クエリを使用するように SSIS に強制する方法はありますか?
または ... SSIS にデータ ソース コンポーネントの実行コンテキストを強制的に変更させる別の方法はありますか?
もう 1 つの解決策があります。それは、スクリプト コンポーネント ソースを使用することです。スクリプト コンポーネントは、さまざまな方法でユーザー コンテキストを設定できます。