Files
RadMac/db/init/init-schema.sql
2025-04-01 17:43:52 -04:00

32 lines
1.0 KiB
SQL

-- init-schema.sql
-- Table for registered users (MAC-based auth)
CREATE TABLE IF NOT EXISTS users (
mac_address CHAR(12) NOT NULL PRIMARY KEY CHECK (mac_address REGEXP '^[0-9A-Fa-f]{12}$'),
description VARCHAR(200),
vlan_id VARCHAR(64)
);
-- Table for auth logs
CREATE TABLE IF NOT EXISTS auth_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
mac_address CHAR(12) NOT NULL CHECK (mac_address REGEXP '^[0-9A-Fa-f]{12}$'),
reply ENUM('Access-Accept', 'Access-Reject') NOT NULL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Table for MAC vendor caching
CREATE TABLE IF NOT EXISTS mac_vendors (
mac_prefix CHAR(6) NOT NULL PRIMARY KEY CHECK (mac_prefix REGEXP '^[0-9A-Fa-f]{6}$'),
vendor_name VARCHAR(255),
status ENUM('found', 'not_found') DEFAULT 'found',
last_checked DATETIME DEFAULT CURRENT_TIMESTAMP,
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Table for VLAN groups
CREATE TABLE IF NOT EXISTS groups (
vlan_id VARCHAR(64) NOT NULL PRIMARY KEY,
description VARCHAR(200)
);