sql - Call view from Stored Procedure -


i have user view, let's call [mike].table wich filtered select select * table tl_filterkey in (1,2,3)

so, if mike connects server , executes

"select * table" 

he see part of data table.

there procedure dbo rights , permision mike execution

create procedure tbselect select * table 

if mike executes exec tbselect see rows table, not filtered.

how write procedure select data user view(filtered rows)?

i tried recreate procedure 'with execute 'mike'' , 'with execute caller', rows returned.

your question little confusing, , don't mention sql server version, suspect problem due schemas. when reference object without schema, sql server looks object in user's default schema first, dbo schema.

as complete guess, think have user called mike default schema mike, view called mike.table , table called dbo.table. when mike runs query table resolved mike.table when db_owner queries table it's resolved dbo.table.

to avoid confusion, should use clearer object names (at least testing) , always qualify object names owner:

create table dbo.testtable (col1 int) go  insert dbo.testtable  select 1 union select 2 union select 3 go  -- return rows select col1 dbo.testtable go  create view dbo.testview select col1 dbo.testtable col1 >= 2 go  -- return 2 rows select col1 dbo.testview go  create procedure dbo.testproc select col1 dbo.testview go  -- return 2 rows exec dbo.testproc go  drop proc dbo.testproc go drop view dbo.testview go drop table dbo.testtable go 

Comments