我正在使用自治数据库中的Edition Based Redefinition。如何强制用户使用我想要的版本?
免责声明:我是自治数据库的产品经理。
发布于 2021-11-24 23:29:30
这可以使用登录触发器和dbms_session包来完成。
下面是一个例子。我使用admin用户创建了两个版本,并授予测试用户对它的访问权限。
SQL> create edition e1;
Edition created.
SQL> create edition e2;
Edition created.
SQL> grant use on edition e2 to test;
Grant succeeded.然后,我创建了一个登录触发器,用于在用户登录时设置该用户的版本。
create or replace trigger sess_logon
after logon on database
begin
if sys_context('USERENV','SESSION_USER') = 'TEST'
then
DBMS_SESSION.SET_EDITION_DEFERRED ('E2');
end if;
END;
/当该用户登录时,她可以使用该查询看到当前版本。
SQL> select sys_context('userenv', 'current_edition_name') from dual;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
--------------------------------------------------------------------------------
E2免责声明:我是自治数据库的产品经理。
https://stackoverflow.com/questions/70104145
复制相似问题