schema.sql
1.47 KB
CREATE TABLE IF NOT EXISTS admins (
id INT AUTO_INCREMENT PRIMARY KEY,
login VARCHAR(64) NOT NULL UNIQUE, -- login do AD, sem domínio (ex: jsilva)
nome VARCHAR(190) NULL, -- cache do displayName, atualizado no login
papel ENUM('admin','operador') NOT NULL DEFAULT 'operador',
ativo TINYINT(1) NOT NULL DEFAULT 1,
criado_por VARCHAR(64) NULL,
criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS settings (
chave VARCHAR(64) PRIMARY KEY,
valor TEXT NOT NULL,
atualizado_por VARCHAR(64) NULL,
atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS audit_log (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario VARCHAR(64) NOT NULL,
acao VARCHAR(64) NOT NULL,
alvo VARCHAR(190) NULL,
detalhe VARCHAR(255) NULL,
ip VARCHAR(45) NULL,
criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS login_attempts (
id INT AUTO_INCREMENT PRIMARY KEY,
login VARCHAR(64) NOT NULL,
ip VARCHAR(45) NOT NULL,
sucesso TINYINT(1) NOT NULL,
criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX idx_login_ip_time (login, ip, criado_em)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;