-- 1. 创建 iam_service 专用用户 CREATE USER iam_service_user WITH PASSWORD 'iam_service_password'; -- 2. 创建 iam_service 专用数据库 CREATE DATABASE iam_service_db OWNER iam_service_user; -- 3. 赋予权限(确保它能在 iam_service_db 库里创建 Schema) GRANT ALL PRIVILEGES ON DATABASE iam_service_db TO iam_service_user; -- 进入 iam_service_db -- 1. 启用 UUID 扩展 CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- 2. 租户表 CREATE TABLE tenants ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), name VARCHAR(255) NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- 3. 用户表 (多租户核心) CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), tenant_id UUID NOT NULL REFERENCES tenants(id), email VARCHAR(255) NOT NULL, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- 4. 关键:创建联合唯一索引 -- 允许不同租户拥有相同的 email,但同一租户内 email 必须唯一 CREATE UNIQUE INDEX idx_users_tenant_email ON users(tenant_id, email); -- 5. 初始化一个测试租户 (方便后续测试) INSERT INTO tenants (id, name) VALUES ('11111111-1111-1111-1111-111111111111', 'Default Corp');