0
我遇到問題。當我使用語句execute as,然後想要使用該原則從鏈接服務器打開數據時,openquery查詢不是以User2原理運行,而是使用運行查詢的登錄名(User1)運行。我故意爲User1提供了鏈接服務器的錯誤憑證。下面的查詢給出錯誤EXECUTE AS和OPENQUERY連接的服務器
Msg 18456, Level 14, State 1, Line 1
Login failed for user 'LinkedServerUser1'.
查詢:
USE Database1
EXECUTE AS LOGIN = 'User2'
IF EXISTS(
SELECT *
FROM
OPENQUERY(LinkedServer1,'
SELECT
name
,state
,state_desc
FROM sys.databases
WHERE name = ''DatabaseLinked1'' AND state = 0
'
)
)
BEGIN
PRINT 'test'
END
REVERT
在需要這個工作,因爲通常這個查詢將由SQL Server代理來運行,我不想授予SQL服務器代理用戶訪問鏈接的服務器。