28 lines
949 B
SQL
28 lines
949 B
SQL
-- Create Database
|
|
CREATE DATABASE license_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE license_db;
|
|
|
|
-- Create licenses table
|
|
CREATE TABLE licenses (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id VARCHAR(255) NOT NULL,
|
|
hashed_key VARCHAR(255) NOT NULL,
|
|
license_type ENUM('one-time', 'subscription', 'trial') DEFAULT 'one-time',
|
|
tier VARCHAR(50) DEFAULT 'basic',
|
|
valid_until DATETIME DEFAULT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_user_id (user_id)
|
|
);
|
|
|
|
-- User with Read-Only Access (Client-side validation)
|
|
CREATE USER 'license_reader'@'%' IDENTIFIED BY 'secure_read_password';
|
|
GRANT SELECT ON license_db.licenses TO 'license_reader'@'%';
|
|
|
|
-- User with Read-Write Access (Server-side key generation and updating)
|
|
CREATE USER 'license_admin'@'%' IDENTIFIED BY 'secure_admin_password';
|
|
GRANT SELECT, INSERT, UPDATE ON license_db.licenses TO 'license_admin'@'%';
|
|
|
|
-- Apply privileges
|
|
FLUSH PRIVILEGES;
|