응용 프로그램 로직에서이 작업을 수행 할 계획이없는 경우에, 나는 현재이 작업을 수행하는 생각할 수있는 유일한 방법은 저장 프로 시저 또는 테이블 반환 함수를 사용하는 것이다.
테이블에 대한 CRUD (읽기 업데이트 삭제 만들기) 저장 프로 시저라고도하는 것을 만듭니다. 분명히 테이블에서만 읽는다면 읽기 전용 sproc 만 필요합니다.
저장 프로 시저 내에서 사용자의 로그인을 기반으로 결과를 필터링하는 논리를 넣을 수 있습니다.
사용자를 데이터베이스의 역할에 할당하고 해당 역할에 저장 프로 시저에 대한 실행 권한을 부여 할 수 있습니다. 또는 테이블 값 함수를 사용하는 경우이 함수에 대한 SELECT 권한을 부여해야합니다. 사용자에게 테이블 자체를 볼 수있는 권한을 부여하지는 않습니다.
Ex.
CREATE ROLE CalendarReader AUTHORIZATION dbo;
GO
CREATE PROCEDURE Calendar_Get
AS
SET NOCOUNT ON;
SELECT
EventDate
,EventText
FROM
Calendar
WHERE
UserLogin = suser_sname()
;
GO
GRANT EXECUTE ON Calendar_Get TO CalendarReader;
GO