31 lines
1.1 KiB
MySQL
31 lines
1.1 KiB
MySQL
|
-- schema.sql
|
||
|
CREATE TABLE users (
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
username VARCHAR(50) UNIQUE NOT NULL,
|
||
|
password_hash VARCHAR(255) NOT NULL,
|
||
|
role VARCHAR(20) NOT NULL CHECK (role IN ('admin', 'user', 'visitor')),
|
||
|
description TEXT,
|
||
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||
|
);
|
||
|
|
||
|
CREATE TABLE login_attempts (
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
ip_address VARCHAR(45) NOT NULL,
|
||
|
attempt_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
|
username VARCHAR(50)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE activity_logs (
|
||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
user_id INTEGER,
|
||
|
action_type VARCHAR(20) NOT NULL CHECK (action_type IN ('login', 'logout', 'upload', 'download', 'delete', 'rename')),
|
||
|
details TEXT,
|
||
|
ip_address VARCHAR(45),
|
||
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
||
|
);
|
||
|
|
||
|
-- Insertion d'un utilisateur admin par défaut (mot de passe: admin123)
|
||
|
INSERT INTO users (username, password_hash, role, description)
|
||
|
VALUES ('admin', '$2y$10$YourHashedPasswordHere', 'admin', 'Administrateur principal');
|