포함 된 데이터베이스에서이 테이블에 대한 읽기 권한을 사용자에게 부여하는 방법은 무엇입니까?SQL Server 2012 - 포함 된 데이터베이스의 sys.dm_db_index_usage_stats에 대한 액세스 권한
테이블이 마지막으로 업데이트 된 날짜를 가져 오는 기능을 만들려고하지만 포함 된 사용자가이를 실행하면 오류 297 '사용자에게이 작업을 수행 할 수있는 권한이 없습니다.'와 함께 실패합니다.
CREATE FUNCTION [MGMT].[GetLastObjectUpdateTime] (@ObjectName NVARCHAR(100))
RETURNS DATETIME
WITH EXECUTE AS OWNER
AS
BEGIN
DECLARE @Result DATETIME
SELECT @result = MAX(last_user_update)
FROM sys.dm_db_index_usage_stats
WHERE OBJECT_ID = OBJECT_ID(@ObjectName)
RETURN @Result
END
peple public (또는 다른 그룹)에는 함수에 대한 실행 권한이 필요하며 포함 된 테이블에 대한 사용 권한을 참조해야합니다. 누가 당신의 게시물에서 무엇을 가지고 있는지 분명하지 않습니다. –
체크 아웃 http://stackoverflow.com/questions/11473907/permission-to-access-sys-dm-db-index-usage-stats – dav1dsm1th
사용자는 실행 권한이있는 역할의 멤버입니다. 뷰 서버 상태를 부여하려면 포함 된 db를 첨부 한 각 서버에서 grant를 실행해야하므로 containment 기능 중 일부가 손상되었다는 것을 의미합니다. – Mint