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