Oracle 数据库的隐藏功能

Oracle 数据库的隐藏功能

由于我的日常工作都围绕着 Oracle DB,因此我想知道是否存在一些隐藏的功能可以在日常使用 DB 的工作中派上用场,无论是作为开发人员还是 DBA?

答案1

作为一名 Oracle DBA,我发现增加对可见 Oracle 数据库功能的了解比未记录且不可预测的隐藏功能更有用。如果您还没有,请从概念指南(pdf)然后阅读管理员指南(pdf)。有关更多阅读选项,请参阅一些 stackoverflow 问题这里这里

答案2

不知道这有多“隐蔽”,但从 9i 版开始,闪回查询机制被引入。

使用闪回查询,您可以查看过去某个时间点的 Oracle 对象的内容和结构(只要这些信息仍存储在撤消表空间中),例如:

select * from 
mytable 
AS OF TIMESTAMP TO_TIMESTAMP ('2009-05-16 10:20:20', 'YYYY-MM-DD HH24:MI:SS'));

从“mytable”中检索 5 分钟前的记录。

答案3

在过去的几年中,Oracle 技术支持偶尔会向我提供未记录的参数,但通常它们未记录(~=隐藏)的原因是它们实际上只应用于故障排除和特定问题。

这一页(由 Donald Burleson 撰写)对如何查找未记录的包和视图进行了很好的分解,但那里面没有太多我可以利用的内容……

答案4

鉴于隐藏功能可能是您不期望的功能,我会投票支持您不想被利用的功能(只是因为您不知道必须禁用它们)。

我记得在一次关于 Oracle 黑客的演讲中看到过一个恐怖场景(我相信是这个- 也作为视频)。最令人印象深刻的功能是完整的数据库加密,这似乎是可用的,但未获得许可。因此,如果您受到攻击,并且有人利用具有所需权限的 SQL 注入,他们可能会触发数据库的加密,当下次重新启动时要求输入密码时,您会识别出该加密。由于加密是“行业标准”,因此您最好有一个未加密的备份,或者准备好在攻击者要求时支付赎金。

这对于使用作为开发人员或 DBA,但值得会心作为有安全意识的 DBA。

如果我错误地引用了谈话内容并得出了错误的结论,请告诉我,我会深入挖掘。

相关内容