MySQL数据库中编写创建权限(业务权限,非数据库权限)的存储过程

55 篇文章 0 订阅
35 篇文章 1 订阅


MySQL数据库中编写创建权限(业务权限,非数据库权限)的存储过程

注:是业务权限而非数据库权限,代码中的数据库表都是创建的业务表。


创建后台权限的存储过程:

DROP PROCEDURE bgCreateAuth;
DELIMITER $
CREATE PROCEDURE bgCreateAuth(IN objkeya VARCHAR(100), IN actkeya VARCHAR(100))
labelpro:
BEGIN
DECLARE objidv INT UNSIGNED;
DECLARE objnamev VARCHAR(50);
DECLARE actidv INT UNSIGNED;
DECLARE actnamev VARCHAR(50);
DECLARE authkeyv VARCHAR(100);
DECLARE authremarkv VARCHAR(100);
DECLARE authidv INT UNSIGNED DEFAULT NULL;
DECLARE message VARCHAR(100);
SELECT AOBJID, NAME INTO objidv, objnamev FROM AUTHOBJECT WHERE OBJKEY=objkeya;
IF(objidv IS NULL) THEN
    SET message = CONCAT("Failed! NO the authority object: ", objkeya);
    SELECT message;
    LEAVE labelpro;
ELSEIF (actkeya IS NOT NULL) THEN
    SELECT AACTID, NAME INTO actidv, actnamev FROM AUTHACTION WHERE ACTKEY=actkeya;
    IF(actidv IS NULL) THEN
        SET message = CONCAT("Failed! NO the authority action: ", actkeya);
        SELECT message;
        LEAVE labelpro;
    END IF; 
    SET authkeyv = CONCAT(objkeya, '-', actkeya);
    SET authremarkv = CONCAT(objnamev, '-', actnamev);
ELSE
    SET actidv = 0;
    SET authkeyv = objkeya;
    SET authremarkv = objnamev;
END IF;
SELECT AUTHID INTO authidv FROM AUTHORITY WHERE AUTHKEY=authkeyv;
IF(authidv IS NOT NULL) THEN
    SET message = CONCAT("This authority already exists: ", authkeyv);
    SELECT message;
    LEAVE labelpro;
END IF;
INSERT INTO AUTHORITY (AUTHKEY, AOBJID, AACTID, REMARK) VALUES (authkeyv, objidv, actidv, authremarkv);
END$
DELIMITER ;

-------------------------------------------------------------------------------

创建前台权限的存储过程:

DROP PROCEDURE fgCreateAuth;
DELIMITER $
CREATE PROCEDURE fgCreateAuth(IN objkeya VARCHAR(100), IN actkeya VARCHAR(100))
labelpro:
BEGIN
DECLARE objidv INT UNSIGNED;
DECLARE objnamev VARCHAR(50);
DECLARE actidv INT UNSIGNED;
DECLARE actnamev VARCHAR(50);
DECLARE authkeyv VARCHAR(100);
DECLARE authremarkv VARCHAR(100);
DECLARE authidv INT UNSIGNED DEFAULT NULL;
DECLARE message VARCHAR(100);
SELECT AOBJID, NAME INTO objidv, objnamev FROM AUTHOBJECTF WHERE OBJKEY=objkeya;
IF(objidv IS NULL) THEN
    SET message = CONCAT("Failed! NO the authority object: ", objkeya);
    SELECT message;
    LEAVE labelpro;
ELSEIF (actkeya IS NOT NULL) THEN
    SELECT AACTID, NAME INTO actidv, actnamev FROM AUTHACTIONF WHERE ACTKEY=actkeya;
    IF(actidv IS NULL) THEN
        SET message = CONCAT("Failed! NO the authority action: ", actkeya);
        SELECT message;
        LEAVE labelpro;
    END IF; 
    SET authkeyv = CONCAT(objkeya, '-', actkeya);
    SET authremarkv = CONCAT(objnamev, '-', actnamev);
ELSE
    SET actidv = 0;
    SET authkeyv = objkeya;
    SET authremarkv = objnamev;
END IF;
SELECT AUTHID INTO authidv FROM AUTHORITYF WHERE AUTHKEY=authkeyv;
IF(authidv IS NOT NULL) THEN
    SET message = CONCAT("This authority already exists: ", authkeyv);
    SELECT message;
    LEAVE labelpro;
END IF;
INSERT INTO AUTHORITYF (AUTHKEY, AOBJID, AACTID, REMARK) VALUES (authkeyv, objidv, actidv, authremarkv);
END$
DELIMITER ;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值