由于我的日常工作都围绕着 Oracle DB,因此我想知道是否存在一些隐藏的功能可以在日常使用 DB 的工作中派上用场,无论是作为开发人员还是 DBA?
答案1
答案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。
如果我错误地引用了谈话内容并得出了错误的结论,请告诉我,我会深入挖掘。