사용자에게 뷰에 대한 액세스 권한을 부여하지만 사용자가 뷰가 선택한 테이블에 액세스하지 못하도록 제한 할 수 있습니까?
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
스키마에 대한 액세스 권한을 부여하면 쿼리가 제대로 실행됩니다.
테이블에 대한 뷰 권한을 부여하고 싶은 생각이 듭니다. 하지만 내 질문은 사용자에게 뷰에 대한 액세스 권한을 부여하고 해당 사용자가 뷰가 선택한 기본 테이블에 액세스하지 못하도록 제한 할 수 있습니까?