카테고리 없음

crossdb ownership 타 db 에 있는 테이블 select error 시

보미아빠 2011. 3. 4. 14:57



(0개 행이 영향을 받음)
메시지 916, 수준 14, 상태 1, 프로시저 usp_a, 줄 5
현재 보안 컨텍스트로는 서버 보안 주체 "minsouk-PC\minsouk"이(가) 데이터베이스 "DB2"에 액세스할 수 없습니다.
위와 같은 오류가 난다면 다음 옵션을 설정하세요!


CREATE DATABASE DB1
GO
CREATE DATABASE DB2
GO

CREATE LOGIN [USER_EXEC] WITH PASSWORD=N'1234', DEFAULT_DATABASE=[MASTER]
GO

ALTER LOGIN [USER_EXEC] ENABLE
GO

USE [DB1]
GO
CREATE USER [USER_EXEC] FOR LOGIN [USER_EXEC]
GO

USE DB1
GO

CREATE TABLE TBLX
(IDX INT)
GO

CREATE PROC USP_A
WITH EXECUTE AS OWNER
AS
SELECT * FROM DB1.DBO.TBLX
SELECT * FROM DB2.DBO.TBLX
GO

USE DB2
GO

CREATE TABLE TBLX
(IDX INT)
GO

USE DB1
GO


GRANT EXECUTE ON USP_A TO USER_EXEC
GO

ALTER DATABASE DB1 SET TRUSTWORTHY ON

--ALTER DATABASE DB1 SET TRUSTWORTHY off
GO


http://msdn.microsoft.com/en-us/library/ms187861.aspx