如何在Autonomous Database中强制用户使用指定Edition?
Autonomous Database强制用户使用指定Edition操作指南
方法1:设置用户默认登录Edition
适用无需限制用户自行修改Edition的场景,操作最简:
执行命令:ALTER USER <目标用户名> DEFAULT EDITION = <你指定的Edition名称>;
若需批量设置所有普通业务用户,可通过查询ALL_USERS视图过滤管理员账号后生成批量执行语句即可。方法2:登录触发器全局强制生效
适用需严格限制所有普通用户必须使用指定Edition的场景,即使用户自行修改默认Edition也会被覆盖:
创建登录触发器,示例代码如下:
CREATE OR REPLACE TRIGGER force_target_edition AFTER LOGON ON DATABASE BEGIN -- 可根据需求调整排除的特殊账号列表 IF SYS_CONTEXT('USERENV','SESSION_USER') NOT IN ('ADMIN','SYS','SYSTEM') THEN DBMS_SESSION.SET_EDITION_DEFERRED('<你指定的Edition名称>'); END IF; END; /
生效验证方式
用户登录后执行以下语句即可查询当前会话使用的Edition:SELECT SYS_CONTEXT('USERENV', 'CURRENT_EDITION_NAME') FROM DUAL;
返回结果与你指定的Edition一致即代表设置成功。注意事项
- 操作前请确认你指定的Edition已提前创建、状态正常可用
- 上述操作需使用Autonomous Database的管理员账号(ADMIN)执行,普通用户需提前被授予对应操作权限
DBMS_SESSION.SET_EDITION_DEFERRED为延迟生效逻辑,不会中断会话当前正在运行的操作,后续访问的数据库对象会自动切换到指定Edition
内容的提问来源于stack exchange,提问作者Yasin B
相关产品推荐
相关产品推荐

