DatabaseProcApplicationCreatedLinks
sybsystemprocssp_monitor_check_permission  31 Aug 14Defects Dependencies

1     
2     /*
3     ** This stored procedure checks if the user has sa_role or mon_role
4     ** It also calls proc_role() which generates appropriate audit records
5     **
6     ** Parameters:
7     **      @procname       - Name of the caller
8     **
9     ** Returns:
10    **      0 in case of success
11    **      1 in case of failure
12    */
13    create procedure sp_monitor_check_permission @procname varchar(30)
14    as
15        declare @retstat int
16        declare @sa_role int /* has sa role */
17        declare @mon_role int /* has mon role */
18    
19        select @sa_role = charindex("sa_role", show_role()),
20            @mon_role = charindex("mon_role", show_role())
21    
22        if ((@sa_role = 0) and (@mon_role = 0))
23        begin
24            /*
25            ** We succeed if both proc_role call returns success
26            ** This is for the unlikely event when a user gains privilege just before
27            ** calls to proc_role are made.
28            ** This avoids, no error message but yet the permission failed scenario
29            */
30            select @retstat = proc_role("mon_role")
31            if (@retstat > 0)
32            begin
33                return (0)
34            end
35            return (1)
36        end
37        else
38        begin
39            /* We fail if proc_role fails */
40            if (@sa_role > 0)
41            begin
42                select @retstat = proc_role("sa_role")
43                if (@retstat = 0)
44                begin
45                    return (1)
46                end
47            end
48            if (@mon_role > 0)
49            begin
50                select @retstat = proc_role("mon_role")
51                if (@retstat = 0)
52                begin
53                    return (1)
54                end
55            end
56        end
57        return (0)
58    


exec sp_procxmode 'sp_monitor_check_permission', 'AnyMode'
go

Grant Execute on sp_monitor_check_permission to public
go
DEFECTS
 MGTP 3 Grant to public sybsystemprocs..sp_monitor_check_permission  
 MUCO 3 Useless Code Useless Brackets 22
 MUCO 3 Useless Code Useless Brackets 31
 MUCO 3 Useless Code Useless Brackets 33
 MUCO 3 Useless Code Useless Brackets 35
 MUCO 3 Useless Code Useless Brackets 40
 MUCO 3 Useless Code Useless Brackets 43
 MUCO 3 Useless Code Useless Brackets 45
 MUCO 3 Useless Code Useless Brackets 48
 MUCO 3 Useless Code Useless Brackets 51
 MUCO 3 Useless Code Useless Brackets 53
 MUCO 3 Useless Code Useless Brackets 57
 VUNU 3 Variable is not used @procname 13
 MTR1 2 Metrics: Comments Ratio Comments: 32% 13
 MTR2 2 Metrics: Cyclomatic Complexity Cyclo: 4 = 7dec - 5exi + 2 13
 MTR3 2 Metrics: Query Complexity Complexity: 26 13

DEPENDENCIES
CALLERS
called by proc sybsystemprocs..sp_monitor_procedure  
called by proc sybsystemprocs..sp_monitor_connection  
called by proc sybsystemprocs..sp_monitor_statement  
called by proc sybsystemprocs..sp_monitor_archive  
   called by proc sybsystemprocs..sp_monitor_deadlock  
      called by proc sybsystemprocs..sp_monitor  
called by proc sybsystemprocs..sp_monitor_disable  
called by proc sybsystemprocs..sp_monitor_deadlock  
called by proc sybsystemprocs..sp_monitor_procstack  
called by proc sybsystemprocs..sp_monitor_enable  
called by proc sybsystemprocs..sp_monitor_event  
called by proc sybsystemprocs..sp_monitor_list