3

SQL Server 2008 R2 に、既定の dbo と Webapps と呼ばれる別のスキーマの 2 つのスキーマを持つデータベースがあり、両方のスキーマが dbo によって所有されています。

dbo.Inventory から単純に選択するだけのビューを Webapps スキーマ (Webapps.getInventory) に作成しました。SELECT次に、Webapps スキーマへのアクセス許可を持つ Webuser というユーザーを作成しました。

Webuser はログインして Webapps.getInventory ビューを表示できますが、そこから選択しようとすると、次のエラーが表示されます。

オブジェクト 'Inventory'、データベース 'Database'、スキーマ 'dbo' に対する SELECT 権限が拒否されました。

両方のスキーマが dbo によって所有されているため、所有権の連鎖によりクエリを実行できると考えていました。私がそれを機能させることができると思われる唯一の方法は、Webuserにdboのアクセス許可を与えるか、データベース全体のdb_datareaderロールに追加することです。ユーザーがデータベース内の他のすべてのものを読み取る能力を持っている必要がある場合、それは Webapps スキーマに物事を分離しようとする目的を無効にしているように思えます。

それで、セットアップで何かを見落としていますか?それとも、このビューを機能させるには、Webuser が両方のスキーマに対する権限を持っている必要があるというのは正しいですか?

4

2 に答える 2