如何在 Oracle free tier 自治数据库 21c 中禁用表上的闪回?似乎是缺乏权限问题,无法在 OCI 免费层中提出支持请求。请注意,无法访问
SYSDBA
帐户。
无法禁用表上的闪回,但可以启用闪回。使用
ADMIN
数据库用户帐户。执行查询时:
-- this will work
ALTER TABLE MAIN.TB_DEV_EXAMPLE106_NOTE FLASHBACK ARCHIVE;
-- this fails with privilege error
ALTER TABLE MAIN.TB_DEV_EXAMPLE106_NOTE NO FLASHBACK ARCHIVE;
禁用表闪回时返回以下错误
ORA-55620: No privilege to use Flashback Archive
GRANT FLASHBACK ARCHIVE ON FLASHBACK_ARCHIVE TO ADMIN
-- returns this error
-- ORA-01031: insufficient privileges
首先,由于这是一个自治数据库无服务器(ADB-S)实例,请参阅 ADB-S 文档了解闪回时间旅行:
ADMIN 用户默认具有 FLASHBACK ARCHIVE 权限,ADMIN 也可以将其授予其他数据库用户。
我刚刚在我的环境中尝试了您的示例,我能够使用 ADMIN 用户在给定表上启用和禁用闪回存档。您确定启用和禁用语句都是使用 ADMIN 用户(或具有 FLASHBACK ARCHIVE 权限的用户)执行的吗?
编辑:我的第一个测试是在 19c 付费和始终免费图像上进行的,其效果符合预期。不过,我刚刚在 21c Always Free 实例中进行了尝试,并验证了您所观察到的行为。如果这是 21c 的限制,我将向我们的开发团队提交一个错误,并相应地更新文档。话虽这么说,21c 很快就会消失,并会被 23c 取代。 Always Free 将有 19c 和 23c 选项。作为立即解决方法,我建议使用 19c Always Free 实例。