0

SQL Server データベースに複数のビューを設定しました。これらのビューは、宣言に WITH EXECUTE AS 'proxyuser' 句があるストアド プロシージャから選択されます。実行する選択ステートメントは動的に作成され、sp_executesql ストアド プロシージャで実行されます。ビューが存在するデータベースと同じサーバー上の別のデータベースの両方からビューが選択されるように、これらのビューの定義に別のデータベースのテーブルへの結合を含める必要が生じるまで、すべてが正しく機能していました。

私が得ているエラーは次のとおりです。サーバー プリンシパル "proxyuser" は、現在のセキュリティ コンテキストではデータベース "mydb" にアクセスできません。

これは私が試したことです:

  1. ここで推奨されているように、2 番目のデータベースからプロキシユーザーを削除し、ログインをデータベースにマッピングします 。 -the-database-under-the-current-security-context/

  2. ここで推奨されているクロス データベース所有権チェーンを有効にします

私のシナリオは、同じエラー メッセージを説明する Microsoft サポート記事 #913422 で概説されている要件を満たしていません。プロキシは、Windows 認証ではなく、SQL Server 認証を使用します。

何か案は?

前もって感謝します。

4

1 に答える 1

1

別のプロジェクトに取り組んでいる長い副業の後、ようやくこれに戻ってきました。WITH EXECUTE AS 'proxyuser' 構文を使用しないように解決しました。接続していたユーザーには、アクションを実行するための十分な権限がありました。なぜ以前にそれを試さなかったのかわかりません。

于 2012-02-29T15:59:38.243 に答える