码迷,mamicode.com
首页 > 数据库 > 详细

权限管理中的数据库存储过程

时间:2016-09-23 23:06:18      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1、根据用户读取相关权限

CREATE PROCEDURE [dbo].[GetRoleAction]
@UserGUID uniqueidentifier,
@DepartmentGUID uniqueidentifier
AS
BEGIN
    IF @UserGUID=‘f425ba38-df44-45d0-a9bb-f5c904bfee1c‘
        BEGIN
            SELECT a.GUID,a.ControllerName,a.ActionName FROM Action a
        END
    ELSE
    BEGIN
        SELECT DISTINCT a.GUID,a.ControllerName,a.ActionName FROM Action a
        INNER JOIN Role_Action ra ON ra.ActionGUID=a.GUID
        INNER JOIN Role r ON r.GUID=ra.RoleGUID
        LEFT JOIN User_Role ur ON ur.RoleGUID=r.GUID
        LEFT JOIN Department_Role dr ON dr.RoleGUID=r.GUID
        WHERE ur.UserGUID=@UserGUID OR dr.DepartmentGUID=@DepartmentGUID
    END
END

2、根据用户获取菜单权限列表

CREATE PROCEDURE [dbo].[GetRoleMenu]
@UserGUID uniqueidentifier,
@DepartmentGUID uniqueidentifier
AS
BEGIN
    IF @UserGUID=‘f425ba38-df44-45d0-a9bb-f5c904bfee1c‘
        BEGIN
            SELECT m.GUID,m.ParentGUID,m.DisplayName,m.IconClass,m.RequestUrl,m.RootLevel,m.OrderIndex FROM Menu m
        END
    ELSE
    BEGIN
        SELECT DISTINCT m.GUID,m.ParentGUID,m.DisplayName,m.IconClass,m.RequestUrl,m.RootLevel,m.OrderIndex FROM Menu m
        INNER JOIN Role_Menu rm ON rm.MenuGUID=m.GUID
        INNER JOIN Role r ON r.GUID=rm.RoleGUID
        LEFT JOIN User_Role ur ON ur.RoleGUID=r.GUID
        LEFT JOIN Department_Role dr ON dr.RoleGUID=r.GUID
        WHERE ur.UserGUID=@UserGUID OR dr.DepartmentGUID=@DepartmentGUID
    END
END

权限管理中的数据库存储过程

标签:

原文地址:http://www.cnblogs.com/dusthunter/p/5901673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!