Re: Stored procedure to drop and create table for end user

From: Brian Henry (brianiupmsdn_at_newsgroups.nospam)
Date: 06/10/04


Date: Thu, 10 Jun 2004 12:16:39 -0400

here is another example.. the following stored procedure does not work it
returns
Server: Msg 229, Level 14, State 5, Procedure
BENESP_GetJournalEntrySubTypes, Line 10
SELECT permission denied on object 'UsersPermissions', database
'bene_users', owner 'dbo'.

now the database the stored proc is on is bene_development, and the users
database is universal the the company and is in bene_users (cross database
usage here)

/****** Object: Stored Procedure dbo.BENESP_GetJournalEntrySubTypes
Script Date: 4/23/2004 11:45:29 AM ******/
CREATE PROCEDURE [DBO].[BENESP_GetJournalEntrySubTypes]
 @loginname varchar(50)
AS

select * from JournalEntrySubTypes
 WHERE JETypeID IN (
select JETypeID from JournalEntryTypes where JournalEntryTypes.JETypeID in
(select jet.JETypeID
 from journalentrytypepermissions as JETP left outer join JournalEntryTypes
AS JET
       on JET.JETypeID = JETP.JETypeID
 where permissionid in (select permissionid
     from bene_users.dbo.UsersPermissions
     where loginname = @loginname) or ((select count(*) from
bene_users.dbo.UsersPermissions where loginname = @loginname and
permissionid = 'canDoBAJournal') = 1)
        OR ((select count(*) from bene_users.dbo.UsersPermissions where
loginname = @loginname and permissionid = 'canDoBillAssocJournal') = 1)
        OR ((select count(*) from bene_users.dbo.UsersPermissions where
loginname = @loginname and permissionid = 'canDoCSAJournal') = 1)
        OR ((select count(*) from bene_users.dbo.UsersPermissions where
loginname = @loginname and permissionid = 'canDoDirectorJournal') = 1)
        OR ((select count(*) from bene_users.dbo.UsersPermissions where
loginname = @loginname and permissionid = 'canDoProducerJournal') = 1))

)

now if i run it just like this

/****** Object: Stored Procedure dbo.BENESP_GetJournalEntrySubTypes
Script Date: 4/23/2004 11:45:29 AM ******/
CREATE PROCEDURE [DBO].[BENESP_GetJournalEntrySubTypes]
 @loginname varchar(50)
AS

select * from JournalEntrySubTypes
 WHERE JETypeID IN (
select JETypeID from JournalEntryTypes where JournalEntryTypes.JETypeID in
(select jet.JETypeID
 from journalentrytypepermissions as JETP left outer join JournalEntryTypes
AS JET
       on JET.JETypeID = JETP.JETypeID ))

it works fine... as soon as i move to the or statement wher ethe select
count(*) from bene_users.dbo statement is the problem happens... and i get

Server: Msg 229, Level 14, State 5, Procedure
BENESP_GetJournalEntrySubTypes, Line 10
SELECT permission denied on object 'UsersPermissions', database
'bene_users', owner 'dbo'.

how would you correct this!? it seems to be a problem with cross database
usage



Relevant Pages

  • Cross database stored procedure problems
    ... the following stored procedure does not work it ... SELECT permission denied on object 'UsersPermissions', database ... WHERE JETypeID IN ( ... from journalentrytypepermissions as JETP left outer join JournalEntryTypes ...
    (microsoft.public.sqlserver.programming)
  • Re: Cross database stored procedure problems
    ... >> now the database the stored proc is on is bene_development, ... >> select JETypeID from JournalEntryTypes where JournalEntryTypes.JETypeID ... as soon as i move to the or statement wher ethe select ...
    (microsoft.public.sqlserver.programming)
  • Re: Stored procedure to drop and create table for end user
    ... Sp3 introduced the cross database ownership stuff. ... > WHERE JETypeID IN ( ... > from journalentrytypepermissions as JETP left outer join JournalEntryTypes ...
    (microsoft.public.sqlserver.programming)
  • Re: Stored procedure to drop and create table for end user
    ... Sp3 introduced the cross ... database ownership stuff. ... >> select JETypeID from JournalEntryTypes where JournalEntryTypes.JETypeID ... >> from journalentrytypepermissions as JETP left outer join ...
    (microsoft.public.sqlserver.programming)