20 人のユーザーが使用しているデータベース (SQL Server) があり、全員が同じセキュリティ ロールのメンバーです。このロールにより、Table1 に対する挿入、削除、および更新が可能になりますが、Table2 に対する権限はありません。
Table1 には、Table2 を切り捨てて Table1 から再構築するストアド プロシージャ Table2_Refresh を起動するトリガーがあります。
トリガーとストアドプロシージャが呼び出し元として自動的に実行されるため、呼び出し元のアクセス許可を使用することをいくつかの場所で読みました。ただし、20 人のユーザーのうち 19 人が Table1 を更新でき、トリガーと SP は正常に実行されます。あるユーザーは、Table2 が見つからないというエラーを受け取ります。
SQLに「EXECUTE AS」の行を入れればいいのはわかっているのですが、複数箇所で発生しており、ユーザー側の問題のようですので、できればそちらで解決したいと思っています。ロールのメンバーシップと権限は同一であるため、2 人のユーザーがデータベースとは異なる動作を経験する理由は他にありますか?