0
我有一個存儲過程,根據執行它的用戶返回不同的結果。我的意圖是讓它返回相同的結果。我自己的用戶得到預期的結果(很多行),但應用程序的服務帳戶得到一個空的結果集(並且沒有錯誤)。查詢返回不同的結果,具體取決於用戶
create procedure mal.get_geospatial_levels
as
set nocount on
select
level_name = c.name
from sys.objects o
inner join sys.columns c
on c.object_id = o.object_id
where o.name like 'mb%'
and c.name like '%[_]v%[_][0-9]%'
and c.name not like 'mb%'
and c.name not like 'admin%'
and c.name not like '%[_]name'
and c.name not in ('AREA_SQ_KM', 'OBJECTID', 'Shape')
group by c.name
order by c.name
如果查詢在SSMS中自己執行,則會發生同樣的情況。
我該看什麼?
我的猜測是您的權限不匹配。 –
什麼樣的權限控制你看到的行?我對權限的理解是,如果我的權限不足,我會收到錯誤消息,但這只是更少的行。該服務帳戶可以執行存儲的proc,因此不需要對所使用的表的權限:[link](http://stackoverflow.com/questions/3815411/stored-procedure-and-permissions-is-execute-enough) 。 – OutstandingBill
有人會解釋爲什麼-1? – OutstandingBill