license-lib/licenses_db_setup.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;