Como crear Roles de Usuarios RBAC Plano PHP MySQL

작성자

카테고리:

← 피드로
DEV Community · Agustin Ramos · 2026-07-25 개발(SW)
Cover image for Como crear Roles de Usuarios RBAC Plano PHP MySQL

Agustin Ramos

Guía crear Roles de Usuario usando RBAC Plano con PHP MySQL
Agustin RamosJul 24, 2026PHP Stuffs
El control de acceso basado en roles (RBAC) es utilizado en la mayoría de los sistemas para definir qué puede hacer cada usuario. En su versión más simple, conocida como RBAC plano, no es necesaria una tabla de permisos: cada usuario tiene un único rol, representado por un número, y ese número es el que determina qué se le permite hacer dentro del sistema.

En esta guía es construido un módulo de RBAC plano completo, con base de datos, conexión, lógica de validación y ejemplos de uso, usando solo PHP y MySQL. Si necesitas repasar los fundamentos antes de continuar, puedes consultar nuestra guía de PHP y MySQL.

  1. Qué es el RBAC plano En este modelo, cada rol es representado por un ID numérico. La regla que se sigue en esta guía es simple: entre más bajo el número, mayor es el nivel de acceso.

1 = admin (mayor nivel de acceso)
2 = subadmin
3 = encargado
4 = empleado (menor nivel de acceso)
Con esta lógica, validar “solo administradores o superiores” se reduce a una simple comparación: role_id <= 2.

  1. Base de datos Son necesarias únicamente dos tablas: rol y user. La columna role_id, dentro de user, es la que define el nivel de acceso de cada persona. Todo este bloque está guardado en el archivo schema.sql.

Cómo ejecutarlo: copia todo el bloque de código y pégalo directamente en tu consola de MySQL (o en phpMyAdmin / MySQL Workbench). Esto crea la base de datos rbac_plano, sus tablas y los datos de ejemplo automáticamente.

— schema.sql
CREATE DATABASE rbac_plano;
USE rbac_plano;
— Tabla rol.
— El ID es usado como nivel: entre más bajo, más privilegios.
CREATE TABLE rol (
id TINYINT UNSIGNED PRIMARY KEY,
name VARCHAR(50) NOT NULL UNIQUE
);
— Se insertan los 4 roles base del sistema.
INSERT INTO rol (id, name) VALUES
(1, ‘admin’),
(2, ‘subadmin’),
(3, ‘encargado’),
(4, ’empleado’);
— Tabla user.
— Cada usuario tiene un único role_id (no hay tabla de permisos).
CREATE TABLE user (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role_id TINYINT UNSIGNED NOT NULL DEFAULT 4,
FOREIGN KEY (role_id) REFERENCES rol(id)
);
Con esto, la base de datos ya queda lista para almacenar usuarios y asignarles un rol.

Mas informacion: Guia RBAC Plano PHP MySQL

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다