UFN_ADHOCQUERY_APPLYQUERYVIEWSECURITY

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


create function dbo.[UFN_ADHOCQUERY_APPLYQUERYVIEWSECURITY]
(
  @CURRENTAPPUSERID uniqueidentifier
)
returns table
as return (
  with xmlnamespaces (
    'bb_appfx_queryview' as ns, 'bb_appfx_commontypes' as common
  ), [ADHOCQUERIESWITHDENIEDQUERYVIEWS] ([ID]) as (
    select
      [ADHOCQUERY].[ID]
    from dbo.[ADHOCQUERY]
    outer apply dbo.[UFN_ADHOCQUERY_QUERYVIEWSINUSE]([ADHOCQUERY].[QUERYDEFINITIONXML]) as [QUERYVIEWSINUSE]
    inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[OBJECTNAME] = [QUERYVIEWSINUSE].[OBJECTNAME]
    left outer join dbo.[UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER](@CURRENTAPPUSERID) as [GRANTEDQUERYVIEWS] on [GRANTEDQUERYVIEWS].[QUERYVIEWCATALOGID] = [QUERYVIEWCATALOG].[ID]
    inner join dbo.[APPUSER] on [APPUSER].[ID] = @CURRENTAPPUSERID
    where [APPUSER].[ISSYSADMIN] = 0
      and dbo.[UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE](@CURRENTAPPUSERID, '5f9bbcaf-9c67-4539-9880-ae4f709a9c1f') = 0
      and [GRANTEDQUERYVIEWS].[QUERYVIEWCATALOGID] is null
  )
  select
    [ADHOCQUERY].[ID]
  from dbo.[ADHOCQUERY]
  where not exists (select top 1 1 from [ADHOCQUERIESWITHDENIEDQUERYVIEWS] where [ID] = [ADHOCQUERY].[ID])
);