zizi 73f96255af W03 数据库、用途隔离与迁移机制:受控连接、用途角色隔离、Flyway 式迁移执行与隔离库夹具。
按 R2 串行阶段整理提交;包内文件为该阶段交付(含后续小增量),状态以工作包清单为准。
2026-09-10 19:25:40 +08:00

17 lines
599 B
SQL

-- 仅由新目标环境的管理员显式运行;不在应用启动或业务迁移中创建角色。
-- 登录认证由部署环境设置,本脚本不包含密码或其他凭据。
DO $$
DECLARE
purpose_role text;
BEGIN
FOREACH purpose_role IN ARRAY ARRAY['muse_app', 'muse_eval', 'muse_maint'] LOOP
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = purpose_role) THEN
EXECUTE format(
'CREATE ROLE %I LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOBYPASSRLS',
purpose_role
);
END IF;
END LOOP;
END
$$;