ユーザーにビューへのアクセスを許可し、ビューが選択するテーブルへのアクセスを制限することはできますか?
CREATE TABLE [dbo].[tUsers](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Username] [nvarchar](50) NULL,
[Password] [nvarchar](50) NULL,
[TenantID] int
) ON [PRIMARY]
CREATE VIEW [scmTenant1].[vUsers]
AS
SELECT ID, Username, Password
FROM dbo.tUsers
WHERE TenantID = 1
SQL Server ユーザー アカウント ( usrTenant1
) にはスキーマへのアクセス権がありますが、スキーマscmTenant1
へのアクセス権はありませんdbo
。として SQL Server Management Studio にログインしusrTenant1
、次のクエリを実行してみます。
SELECT * FROM scmTenant1.vUsers
エラーが発生します:
オブジェクト 'tUsers'、データベース 'Sandbox'、スキーマ 'dbo' に対する SELECT 権限が拒否されました。
このアカウントにdbo
スキーマへのアクセスを許可すると、クエリは正常に実行されます。
テーブルにビュー権限を付与したいのですが。しかし、私の質問は、ユーザーにビューへのアクセスを許可し、そのユーザーがビューが選択する基になるテーブルにアクセスできないようにすることはできますか?