USP_REPORT_SYSTEMROLE_DENIEDCODETABLEENTRIES
Returns a list of denied code table entries for a system role.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SYSTEMROLEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_SYSTEMROLE_DENIEDCODETABLEENTRIES
(
@SYSTEMROLEID uniqueidentifier
)
with execute as owner
as
set nocount on;
declare @DBTABLENAME nvarchar(100);
create table #results(
CATEGORY nvarchar(100) collate database_default,
CODETABLENAME nvarchar(100) collate database_default,
CODETABLEENTRYNAME nvarchar(100) collate database_default
);
declare SECURABLECODETABLE_CURSOR cursor local fast_forward for
select distinct
DBTABLENAME
from
dbo.CODETABLECATALOG
inner join
dbo.SYSTEMROLEPERM_CODETABLEENTRY on CODETABLECATALOG.ID = SYSTEMROLEPERM_CODETABLEENTRY.CODETABLECATALOGID
where
SYSTEMROLEID = @SYSTEMROLEID;
open SECURABLECODETABLE_CURSOR;
fetch next from SECURABLECODETABLE_CURSOR into @DBTABLENAME;
while @@FETCH_STATUS = 0 begin
declare @SQL nvarchar(max);
set @SQL = 'insert into #results(CATEGORY,CODETABLENAME,CODETABLEENTRYNAME)
select
CODETABLECATEGORY.DESCRIPTION as CATEGORY,
CODETABLECATALOG.UINAME,
CT.DESCRIPTION as CODETABLEENTRYNAME
from dbo.' + @DBTABLENAME + ' CT
inner join dbo.SYSTEMROLEPERM_CODETABLEENTRY on CT.ID = SYSTEMROLEPERM_CODETABLEENTRY.CODETABLEENTRYID and SYSTEMROLEPERM_CODETABLEENTRY.SYSTEMROLEID = @ROLEID
inner join dbo.CODETABLECATALOG on SYSTEMROLEPERM_CODETABLEENTRY.CODETABLECATALOGID = CODETABLECATALOG.ID
inner join dbo.CODETABLECATEGORY on CODETABLECATALOG.CATEGORYID = CODETABLECATEGORY.ID
order by CT.DESCRIPTION'
exec sp_executesql @SQL, N'@ROLEID uniqueidentifier', @ROLEID = @SYSTEMROLEID;
fetch next from SECURABLECODETABLE_CURSOR into @DBTABLENAME;
end
close SECURABLECODETABLE_CURSOR;
deallocate SECURABLECODETABLE_CURSOR;
select CATEGORY,CODETABLENAME,CODETABLEENTRYNAME from #results;
drop table #results;