Thread: MS SQL Server General Questions/Some useful queries for the security system

Some useful queries for the security system

 


DECLARE @STATE AS  VARCHAR(4000),  @SJ_USERID INT


SELECT @SJ_USERID=1


 


/*


  Security User by groups  


*/


-- delete not existed groups


DELETE FROM [DBO].[SECURITY_JOINUSERSGROUPS] WHERE


[SJ_USERID]=@SJ_USERID AND [SJ_GROUPID] NOT IN (1,2)


 


-- add new groups


INSERT INTO [DBO].[SECURITY_JOINUSERSGROUPS] ([SJ_USERID], [SJ_GROUPID])


  SELECT @SJ_USERID, GP.SG_GROUPID FROM [DBO].[SECURITY_GROUPS] AS GP WHERE GP.SG_GROUPID IN (1,2)


    AND GP.SG_GROUPID NOT IN (SELECT DISTINCT [SJ_GROUPID] FROM [DBO].[SECURITY_JOINUSERSGROUPS] WHERE [SJ_USERID]=@SJ_USERID)


 


/*


  Security Processes by groups


*/


DECLARE @SR_GROUPID INT


SELECT @SR_GROUPID=1


-- delete not existed process for the specific group


DELETE FROM [dbo].[SECURITY_RIGHTS] WHERE


[SR_GROUPID]=@SR_GROUPID AND [SR_PROCESS] NOT IN (1,2,3,4)


 


-- add new processes for the specific group


INSERT INTO [DBO].[SECURITY_RIGHTS] ([SR_GROUPID],[SR_PROCESS])


  SELECT @SR_GROUPID, PR.[SP_SPID] FROM [dbo].[SECURITY_PROCESSES] AS PR WHERE PR.SP_SPID IN (1,2,3,4)


    AND PR.SP_SPID NOT IN (SELECT DISTINCT [SR_PROCESS] FROM [DBO].[SECURITY_RIGHTS] WHERE [SR_GROUPID]=@SR_GROUPID)


 


/*


  Security Processes by user


*/


DECLARE @SR_USERID INT


SELECT @SR_USERID=1


-- delete not existed process for the specific user


DELETE FROM [dbo].[SECURITY_RIGHTS] WHERE


[SR_USERID]=@SR_USERID AND [SR_PROCESS] NOT IN (3,4)


 


-- add new processes for the specific user


INSERT INTO [DBO].[SECURITY_RIGHTS] ([SR_USERID],[SR_PROCESS])


  SELECT @SR_USERID, PR.[SP_SPID] FROM [dbo].[SECURITY_PROCESSES] AS PR WHERE PR.SP_SPID IN (3,4)


  AND PR.SP_SPID NOT IN (SELECT DISTINCT [SR_PROCESS] FROM [DBO].[SECURITY_RIGHTS] WHERE [SR_USERID]=@SR_USERID)


 

-- 19/02/2009 15:19:05: post edited by sergey.