guanghulab/persona-brain-db/schema/15-access-grants.sql

27 lines
1.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 表15access_grants访问权限表
-- 用途:动态权限接口,由冰朔手动生成
-- 冰朔权限控制三层:对国家系统逻辑完全透明 → 国家系统逻辑审核 → 光湖团队审核 → 冰朔本人
-- ============================================================
CREATE TABLE IF NOT EXISTS access_grants (
grant_id VARCHAR(64) PRIMARY KEY,
grantee_type VARCHAR(16) NOT NULL
CHECK (grantee_type IN ('persona', 'system', 'national', 'user', 'emergency')),
grantee_id VARCHAR(64) NOT NULL,
resource_type VARCHAR(32) NOT NULL,
resource_id VARCHAR(64),
permissions TEXT NOT NULL, -- JSON array of permissions
grant_conditions TEXT, -- JSON object of conditions
valid_from TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
valid_until TIMESTAMP,
issued_by VARCHAR(64) NOT NULL,
status VARCHAR(16) NOT NULL DEFAULT 'active'
CHECK (status IN ('active', 'revoked', 'expired')),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_ag_grantee ON access_grants(grantee_type, grantee_id);
CREATE INDEX IF NOT EXISTS idx_ag_resource ON access_grants(resource_type, resource_id);
CREATE INDEX IF NOT EXISTS idx_ag_status ON access_grants(status);