SyteLine Authorizations

本文介绍了一套针对SyteLine系统的SQL存储过程,用于高效地管理用户、组及权限分配。通过创建多个存储过程来简化获取用户信息、组信息以及权限分配的过程。

实施Syteline system, 在authorizations时,经常需要写的几个SQL语句,因此把它写成存储过程,在使用时,执行这些存储过程即可,纯粹是为了方便工作。

取到所有用户:

CREATE PROCEDURE [dbo].[usp_SyteLine_GetUserNames]
AS 
SELECT [userId],[username],[userDesc] FROM [dbo].[UserNames] ORDER BY [username]

 
取得用户信息By UserId:

CREATE PROCEDURE [dbo].[usp_SyteLine_GetUserNamesByUserId]
(
    
@UserId DECIMAL(11,0)
)
AS 
SELECT [userId],[username],[userDesc] FROM [dbo].[UserNames] WHERE UserId = @UserId

GO

  

取得所有组信息:

CREATE PROCEDURE [dbo].[usp_SyteLine_GetGroupNames]
AS 
SELECT [GroupId],[GroupName],[GroupDesc] FROM [dbo].[GroupNames] ORDER BY [GroupName] ASC

GO

 
取得用户信息By GroupId:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetUserNamesByGroup]
(
    
@GroupId DECIMAL(11,0)
)
AS 
SELECT [userId],[username],[userDesc] FROM [dbo].[UserNames] WHERE UserId IN 
(
    
SELECT [UserId] FROM [dbo].[UserGroupMap] WHERE [GroupId] = @GroupId
)
GO

  

取得权限组By UserId:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetGroupNamesByUser]
(
    
@UserId DECIMAL(11,0)
)
AS 
SELECT [GroupId],[GroupName],[GroupDesc] FROM [dbo].[GroupNames] WHERE [GroupId] IN 
(
    
SELECT [GroupId] FROM [dbo].[UserGroupMap] WHERE [UserId] = @UserId
)

GO

  

取得权限组By GroupId:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetGroupNamesByGroup]
(
    
@GroupId DECIMAL(11,0)
)
AS 
SELECT [GroupId],[GroupName],[GroupDesc] FROM [dbo].[GroupNames] WHERE [GroupId] = @GroupId

GO


取得用户息By ObjectName: 

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetUserNamesByObject]
(
    
@ObjectName NVARCHAR(50)
)
AS 
SELECT [userId],[username],[userDesc] FROM [dbo].[UserNames] WHERE UserId IN 
(
SELECT [Id] FROM [dbo].[AccountAuthorizations]
WHERE [UserFlag] = 1 AND [ObjectType] = 0 AND ObjectName1 LIKE '%' +@ObjectName + '%')

   
取得权限组By ObjectName:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetGroupNamesByObject]
(
    
@ObjectName NVARCHAR(50)
)
AS 
SELECT GroupId,GroupName,GroupDesc FROM [dbo].[GroupNames] WHERE GroupId IN(
SELECT [Id] FROM [dbo].[AccountAuthorizations]
WHERE [UserFlag] = 0 AND [ObjectType] = 0 AND ObjectName1 LIKE '%' +@ObjectName + '%'

  

取得用户拥有form对象By userId:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetAccountAuthorizationsByUser]
(
    
@UserId DECIMAL(11,0)
)
AS 
SELECT [ObjectName1],
CASE WHEN [ReadPrivilege] = 1 THEN 'Granted' WHEN [ReadPrivilege] = 0 THEN 'Revoked' END AS [ReadPrivilege],
CASE WHEN [UpdatePrivilege] = 1 THEN 'Granted' WHEN [UpdatePrivilege] = 0 THEN 'Revoked' END AS [UpdatePrivilege],
CASE WHEN [BulkUpdatePrivilege] = 1 THEN 'Granted' WHEN [BulkUpdatePrivilege] = 0 THEN 'Revoked' END AS [BulkUpdatePrivilege],
CASE WHEN [InsertPrivilege] = 1 THEN 'Granted' WHEN [InsertPrivilege] = 0 THEN 'Revoked' END AS [InsertPrivilege],
CASE WHEN [DeletePrivilege] = 1 THEN 'Granted' WHEN [DeletePrivilege] = 0 THEN 'Revoked' END AS [DeletePrivilege],
CASE WHEN [EditPrivilege] = 1 THEN 'Granted' WHEN [EditPrivilege] = 0 THEN 'Revoked' END AS [EditPrivilege],
CASE WHEN [ExecutePrivilege] = 1 THEN 'Granted' WHEN [ExecutePrivilege] = 0 THEN 'Revoked' END AS [ExecutePrivilege] 
FROM [dbo].[AccountAuthorizations] 
WHERE [UserFlag] = 1 AND [Id] = @UserId

GO

  

取得组拥有form对象By GroupId:

代码
CREATE PROCEDURE [dbo].[usp_SyteLine_GetAccountAuthorizationsByGroup]
(
    
@GroupId DECIMAL(11,0)
)
AS 
SELECT [ObjectName1],
CASE WHEN [ReadPrivilege] = 1 THEN 'Granted' WHEN [ReadPrivilege] = 0 THEN 'Not Granted' END AS [ReadPrivilege],
CASE WHEN [UpdatePrivilege] = 1 THEN 'Granted' WHEN [UpdatePrivilege] = 0 THEN 'Not Granted' END AS [UpdatePrivilege],
CASE WHEN [BulkUpdatePrivilege] = 1 THEN 'Granted' WHEN [BulkUpdatePrivilege] = 0 THEN 'Not Granted' END AS [BulkUpdatePrivilege],
CASE WHEN [InsertPrivilege] = 1 THEN 'Granted' WHEN [InsertPrivilege] = 0 THEN 'Not Granted' END AS [InsertPrivilege],
CASE WHEN [DeletePrivilege] = 1 THEN 'Granted' WHEN [DeletePrivilege] = 0 THEN 'Not Granted' END AS [DeletePrivilege],
CASE WHEN [EditPrivilege] = 1 THEN 'Granted' WHEN [EditPrivilege] = 0 THEN 'Not Granted' END AS [EditPrivilege],
CASE WHEN [ExecutePrivilege] = 1 THEN 'Granted' WHEN [ExecutePrivilege] = 0 THEN 'Not Granted' END AS [ExecutePrivilege]
FROM [dbo].[AccountAuthorizations] 
WHERE [UserFlag] = 0 AND [ObjectType] = 0 AND [Id] = @GroupId

GO

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值