feat: add access_grants table [D109] dynamic permission interface (冰朔手动生成)

This commit is contained in:
bingshuo 2026-05-21 17:43:54 +08:00
parent f564fe08e5
commit dededc5824

View File

@ -0,0 +1,26 @@
-- ============================================================
-- 表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);