USP_MKTSOURCEANALYSISRULE_ADDTOSYSTEMROLEPERM_QUERYVIEW
Grant permission to the query view spec created by the source analysis rule
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSOURCEANALYSISRULE_ADDTOSYSTEMROLEPERM_QUERYVIEW]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @RECORDSOURCEID uniqueidentifier;
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
select
@RECORDSOURCEID = [RECORDSOURCEID]
from
dbo.[MKTSOURCEANALYSISRULES]
where
[QUERYVIEWSPECID] = @ID;
if not exists(select 1 from [SYSTEMROLEPERM_QUERYVIEW] inner join [SYSTEMROLE] on [SYSTEMROLEPERM_QUERYVIEW].[SYSTEMROLEID] = [SYSTEMROLE].[ID] where [SYSTEMROLEID] = [SYSTEMROLE].[ID] and [QUERYVIEWCATALOGID] = @ID)
begin
insert into [SYSTEMROLEPERM_QUERYVIEW] (
[SYSTEMROLEID],
[QUERYVIEWCATALOGID],
[GRANTORDENY],
[ADDEDBYID],
[CHANGEDBYID]
)
select distinct
[SYSTEMROLE].[ID],
@ID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID
from
dbo.[SYSTEMROLE]
inner join
[SYSTEMROLEPERM_QUERYVIEW] on [SYSTEMROLE].[ID] = [SYSTEMROLEPERM_QUERYVIEW].[SYSTEMROLEID]
inner join
[QUERYVIEWCATALOG] on [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = [QUERYVIEWCATALOG].[ID]
inner join
[RECORDTYPE] on [QUERYVIEWCATALOG].[RECORDTYPEID] = [RECORDTYPE].[ID]
where
([SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = @RECORDSOURCEID)
and
([SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] != @ID)
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;