UFN_ADHOCQUERY_USERHASRIGHTSTOQUERYVIEWS
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@QUERYDEFINITIONXML | xml | IN |
Definition
Copy
CREATE function dbo.UFN_ADHOCQUERY_USERHASRIGHTSTOQUERYVIEWS
(
@APPUSERID uniqueidentifier,
@QUERYDEFINITIONXML xml
)
returns bit
as
begin
declare @RETURNVALUE bit;
declare @ISSYSADMIN bit;
declare @HASQUERYVIEWSYSTEMPRIVILEGE bit = 0;
select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;
if @ISSYSADMIN = 0
select @HASQUERYVIEWSYSTEMPRIVILEGE = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@APPUSERID, '5f9bbcaf-9c67-4539-9880-ae4f709a9c1f');
if (@ISSYSADMIN = 0 and @HASQUERYVIEWSYSTEMPRIVILEGE = 0)
begin
declare @OKVIEWS table (OBJECTNAME nvarchar(128));
insert into @OKVIEWS (OBJECTNAME)
select
QUERYVIEWCATALOG.OBJECTNAME
from
dbo.QUERYVIEWCATALOG
where
exists
(
select
[OKVIEWS].QUERYVIEWCATALOGID
from
dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@APPUSERID) as [OKVIEWS]
where
[OKVIEWS].QUERYVIEWCATALOGID = QUERYVIEWCATALOG.ID
);
if exists
(
select
[QUERYVIEWSINUSE].OBJECTNAME
from
dbo.UFN_ADHOCQUERY_QUERYVIEWSINUSE(@QUERYDEFINITIONXML) as [QUERYVIEWSINUSE]
where
not exists
(
select
[OKVIEWS].OBJECTNAME
from
@OKVIEWS as [OKVIEWS]
where
[OKVIEWS].OBJECTNAME = [QUERYVIEWSINUSE].OBJECTNAME)
)
begin
set @RETURNVALUE = 0;
end
else
begin
set @RETURNVALUE = 1;
end;
end
else
begin
set @RETURNVALUE = 1;
end;
return @RETURNVALUE;
end;