UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYQUERYVIEWXML
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@OBJECTNAMEXML | xml | IN |
Definition
Copy
CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYQUERYVIEWXML
(
@CURRENTAPPUSERID uniqueidentifier,
@OBJECTNAMEXML XML
)
returns table
as
return
(
select
QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID
from dbo.QUERYVIEWCATALOG
inner join @OBJECTNAMEXML.nodes('QueryViews/QueryView') As Q(c) on Q.c.value('./@ObjectName', 'nvarchar(250)') = QUERYVIEWCATALOG.OBJECTNAME
inner join dbo.SMARTFIELD on dbo.UFN_SMARTFIELD_GETQUERYVIEWOBJECTNAME(SMARTFIELD.ID) = UPPER(QUERYVIEWCATALOG.OBJECTNAME)
inner join dbo.SMARTFIELDCATALOG on SMARTFIELDCATALOG.ID = SMARTFIELD.SMARTFIELDCATALOGID
inner join dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@CURRENTAPPUSERID) GQV on QUERYVIEWCATALOG.ID = GQV.QUERYVIEWCATALOGID
cross apply dbo.UFN_SITEID_MAPFROM_SMARTFIELDID(SMARTFIELD.ID) as SMARTFIELDSITE
outer apply dbo.UFN_SECURITY_APPUSER_GRANTED_QUERYVIEW_FORSITE_TVF(@CURRENTAPPUSERID, QUERYVIEWCATALOG.ID, SMARTFIELDSITE.SITEID) as GRANTED_FORSITE
where
SMARTFIELDCATALOG.HASSITEFILTER = 0
or
GRANTED_FORSITE.ISVALID = 1
group by QUERYVIEWCATALOG.ID
union
select
QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID
from dbo.SMARTFIELD
inner join dbo.OLAPDATASOURCESMARTFIELD on SMARTFIELD.ID = OLAPDATASOURCESMARTFIELD.SMARTFIELDID
inner join dbo.SMARTFIELDCATALOG on SMARTFIELDCATALOG.ID = SMARTFIELD.SMARTFIELDCATALOGID
inner join dbo.QUERYVIEWCATALOG on dbo.UFN_OLAPSMARTFIELD_GETQUERYVIEWOBJECTNAME(SMARTFIELD.ID, OLAPDATASOURCESMARTFIELD.OLAPDATASOURCEID) = UPPER(QUERYVIEWCATALOG.OBJECTNAME)
inner join dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@CURRENTAPPUSERID) GQV on QUERYVIEWCATALOG.ID = GQV.QUERYVIEWCATALOGID
cross apply dbo.UFN_SITEID_MAPFROM_SMARTFIELDID(SMARTFIELD.ID) as SMARTFIELDSITE
outer apply dbo.UFN_SECURITY_APPUSER_GRANTED_QUERYVIEW_FORSITE_TVF(@CURRENTAPPUSERID, QUERYVIEWCATALOG.ID, SMARTFIELDSITE.SITEID) as GRANTED_FORSITE
where
SMARTFIELDCATALOG.HASSITEFILTER = 0
or
GRANTED_FORSITE.ISVALID = 1
group by QUERYVIEWCATALOG.ID
)