在代码中添加如下代码段可以实现从数据库中获取和更新角色权限:
CREATE TABLE roles ( id INT(11) AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL );
CREATE TABLE permissions ( id INT(11) AUTO_INCREMENT PRIMARY KEY, role_id INT(11) NOT NULL, command VARCHAR(255) NOT NULL, FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE );
INSERT INTO roles (name) VALUES ('admin');
INSERT INTO permissions (role_id, command) VALUES (1, 'SELECT * FROM users');
获取角色拥有的所有权限:
SELECT command FROM permissions WHERE role_id = 1;
获取权限对应的角色:
SELECT name FROM roles WHERE id = (SELECT role_id FROM permissions WHERE command = 'SELECT * FROM users');
更新一个角色的权限,首先删除该角色的所有权限,然后再添加所有新的权限:
DELETE FROM permissions WHERE role_id = 1;
INSERT INTO permissions (role_id, command) VALUES (1, 'INSERT INTO orders (user_id, item) VALUES(1, "phone")');
这样就可以在应用程序中动态地更新角色和权限了。
上一篇:保持角度在1到180度之间
下一篇:保持角色控制器在斜坡上的速度不变