Monthly Archives: February 2007

Oracle 10g 中 CONNECT 角色的变化

其实是一个很老的”新”变化。Oracle 10g 对 CONNECT 角色作了一点调整。原来的 CONNECT 角色(9i) 包括

CREATE SESSION
CREATE TABLE
CREATE VIEW
CREATE SYNONYM
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE
ALTER SESSION

其中象 ALTER SESSION 这样的权限还是很危险的,一个用户可以搞垮整个数据库。所以估计是出于安全的原因吧,Oracle 10g 现在只保留了 CREATE SESSION 这个权限。
在 Metalink Note:317258.1 描述了 CONNECT 的变迁,不看不知道,一看吓一跳,在 Oracle 7 上该角色还包括预定义角色 DBA , 即使是 Oracle 8i 上,该角色也包括了很多权限过大的预定义角色。
细微的东西往往隐藏着危险。
如果是从低版本升级到 10g 导致权限问题,可以用 $ORACLE_HOME/rdbms/admin/rstrconn.sql 这个脚本进行恢复.
EOF

两个关于数据库的论文资源

一个是 VLDB Endowment 的站点,一年一度的 VLDB 大会的相关信息,过往会议的很多文档都可以看到。比如 2006 年在韩国汉城(去他妈的首尔)的年会,有几篇文档值得看看,

第二个是 ACM Digital Library,包括过去 50 年来的 ACM 的所有文档。搜索到的文档也是可以下载的(FAQ)。应该感谢 Google 的数字图书馆计划。这里不局限于数据库的论文,如果你对 Google 感兴趣,输入 “Google” 搜索一下看看。
logo_acm_portal2.jpg
EOF

Fortify 的 Java Open Review Project

今天在升级 Azureus 的时候,注意到在项目首页致谢处有 Fortify 的链接,点击过去看到了这个 Java Open Review (JOR)项目。
JOR 项目是由 Fortify 与 FindBugs 联袂举办,旨在提高 Java 开源软件的安全性,现在有很多开源软件已经加入到评测当中。列表中包括 Azureus、Lucene、Nutch、Tomcat 等知名开源软件。
此前看过 Foritify 与 Oracle 合作的新闻,我的 Blog 上也提过这个事儿,Fortify 这个公司给我留下了很深印象。很多大软件公司都是他的客户,包括微软、Oracle、Symantec、Amazon 等。
FindBugs 这个开源项目其实也是 Fortify 赞助的(Google 也是该项目支持者之一),在 Lesser GPL 版权下发布。使用起来并不复杂(参考文档),并且,该工具有针对 Eclipse 的插件(参考文档)。
buggy_FindBugs.png
在安全问题日益严重的今天(如:”网银大盗”横行),或许这些代码安全分析工具会让开发人员少遇到一些麻烦。
EOF

关于 Oracle 10g EXPDP 的 EXCLUDE 参数

Oracle 10g 的 Data Pump 是个不错的新特性,因为新(其实 10g 也发布好几年了),所以也存在不少问题。
比如 EXPDP 的 EXCLUDE 参数,expdp help=y 输出的内容是这样说明的:

EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.

可是实际上用这样的格式却是不正确的,会得到一个错误提示信息:

ORA-39071: Value for EXCLUDE is badly formed.

正确的格式是啥? 如果第一次遇到或许还有些不知就里,莫明其妙。在 ITpub 上有个讨论,有朋友贴的文档给出了正确的语法:

EXCLUDE=TABLE:"IN ('TABLENAME1', 'TABLENAME2')"

对于 EXCLUDE/INCLUDE 参数还要注意的是二者不能共用。此外,Linux 和 Windows 下的命令行可能要对转义符号注意一点。
这个语法问题存在好久了,应该算是文档的 Bug ? Oracle 还没有进行修正。
EXPDP 我还遇到另外一个问题,生成的文件超过 99 个就会报错。有谁遇到过没?
EOF
BTW: 最近看到有朋友批评我写的东西没意思,其实首先要明确一点,我写的东西基本上是比较简单的所谓”技术”, 另外我也不知道写什么有意思,众口难调,而且,写多了我也腻。