harlingtonthewizard
Constraint Violating Yak Guru
352 Posts |
Posted - 2008-08-22 : 00:04:37
|
I am trying to do the same thing and I have the following working if this helps. I am using Reporting Services 2005 and point to this type of stored procedure. I do have concerns about using dynamic sql due to security issues? I have tried with sp_Msforeachdb but do not know how to limit DB's.I am a beginner so don't take this as a good solution but it may give you some ideas.USE [VC]GO/****** Object: StoredProcedure [dbo].[Users] Script Date: 08/22/2008 13:28:42 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER Procedure [dbo].[Users]@CombinedName varchar (100),@CombPriv varchar (100)ASdeclare @sql varchar(max)select @sql=''select @sql=@sql+ 'SELECT UserDetails.LastName + '' '' + UserDetails.FirstName AS CombinedName, GroupDetails.GroupName + '' - '' + PermissionDetails.PermissionName AS CombPriv, UserDetails.FirstName, UserDetails.MiddleName, UserDetails.LastName, UserDetails.Initials, UserDetails.LoginName, GroupDetails.GroupName, GroupDetails.GroupDescription, FeatureDetails.Description, PermissionDetails.PermissionName, PermissionDetails.PermissionDescription, UserDetails.UserIDFROM '+name+'.dbo.UserDetails INNER JOIN'+name+'.dbo.UserGroup ON '+name+'.dbo.UserDetails.UserID = '+name+'.dbo.UserGroup.UserID INNER JOIN'+name+'.dbo.GroupDetails ON '+name+'.dbo.UserGroup.GroupID = '+name+'.dbo.GroupDetails.GroupID INNER JOIN'+name+'.dbo.GroupFeatures ON '+name+'.dbo.GroupDetails.GroupID = '+name+'.dbo.GroupFeatures.GroupID INNER JOIN'+name+'.dbo.FeatureDetails ON '+name+'.dbo.GroupFeatures.FeatureID = '+name+'.dbo.FeatureDetails.FeatureID INNER JOIN'+name+'.dbo.GroupPermissions ON '+name+'.dbo.GroupDetails.GroupID = '+name+'.dbo.GroupPermissions.GroupID INNER JOIN'+name+'.dbo.PermissionDetails ON '+name+'.dbo.GroupPermissions.PermissionID = '+name+'.dbo.PermissionDetails.PermissionIDWHERE ((UserDetails.LastName + '' '' + UserDetails.FirstName) IN (Select Param From fn_MVParam ('''+@CombinedName+''','','')) AND (GroupDetails.GroupName + '' - '' + PermissionDetails.PermissionName) IN (Select Param From fn_MVParam ('''+@CombPriv+''','',''))) AND (UserDetails.IsDeleted = ''False'')ORDER BY CombinedName ' from sys.databases where name='VC' or name like 'VCA%' Create table #t([CombinedName] varchar(100), [CombPriv] varchar(100), [FirstName] varchar(50), [MiddleName] varchar(50), [LastName] varchar(50), [Initials] varchar(50), [LoginName] varchar(50), [GroupName] varchar(50), [GroupDescription] varchar(50), [Description] varchar(50), [PermissionName] varchar(50), [PermissionDescription] varchar(50), [UserID] int)Insert into #texec(@sql)---Print @sqlSelect [CombinedName], [CombPriv], [FirstName], [MiddleName], [LastName], [Initials], [LoginName], [GroupName], [GroupDescription], [Description], [PermissionName], [PermissionDescription], [UserID]from #tDrop table #tReturn |
|
|