Tag Archives: Tips

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

关于 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: 最近看到有朋友批评我写的东西没意思,其实首先要明确一点,我写的东西基本上是比较简单的所谓”技术”, 另外我也不知道写什么有意思,众口难调,而且,写多了我也腻。

“MAPI32.DLL 损坏或版本不对” 解决办法

安装 Office 2007 试用了几天,新版本用户体验倒的确不错,可就是在我的机器上不够稳定,经常”停止响应”,无奈何,删掉 Microsoft Office 2007, 重新安装 Office 2003,启动 Outlook 2003 的时候遇到如下问题:

无法启动 Microsoft Office Outlook。MAPI32.DLL 损坏或版本不对。可能是由于安装其他邮件软件造成的。请重新安装 Outlook。

重新安装一遍,问题依旧,搜索到了微软一篇支持文档,当您尝试启动 Outlook 2003 错误信息: “MAPI 32.DLL 已损坏或版本不对”,其说明的原因是:

如果安装 Microsoft Office Outlook 2007 ,然后卸载,再安装 Outlook 2003 就会发生此问题。(原因是)当卸载 Outlook 2007的时候,没有从计算机上除 Outlook 2007 版本的 MSMapi32.dll 文件,该文件位置:
C:\ProgramFiles\Common Files Files\System\Msmapi\1033

(Office 删除的时候连自己的文件都弄不干净,唉。另外,微软页面上这段话是机器翻译的,2007 都翻译成 2007 年,我给擅自校订了一下)
这个 MSMapi32.dll 位置似乎是有问题的,我的机器上实际的位置在:

C:\Program Files\Common Files\System\MSMAPI\2052

把该文件重新命名后,再打开 Outlook 2003 就 OK 了.
EOF

Google Adsense 的十诫

使用 Google Adsense 的用户最郁闷的事情恐怕就是”账户被停”,Google 在停掉用户账户的时候是没有任何商量余地的。在网上看到一篇 10 Great Things NOT to Do with Google AdSense,作者提出的 10 条堪称金科玉律,值得我们借鉴。
这 10 条分别是:
1) 不要在注册 Google Adsense 账户的时候使用虚假信息。
2) 不要 Hack 或是修改 Google AdSense 授权给你的代码。
3) 不要在注册页面、确认页面以及”感谢”页面放置 Google Adsense 广告。
4) 不要在同一页面同一时间显示竞争对手的广告服务。
5) 不要搞”请点击本站广告吧”或是其他任何鼓励访问者点击 Adsense 的行为。
6) 绝对不要点击自己站点上的 Adsense 广告,哪怕是你真的对这个产品感兴趣。
7) 不要设置误导性的标签,比如”赞助商链接”、”广告商”之外的其他标志。
8) 不要进行垃圾关键字堆积与容易造成纠纷的所谓”技巧”。
9) 不要针对 Google 所禁止的广告内容列表发布广告。
10) 不要因为上面的 9 条戒律的束缚而放弃 Google Adsense 提供给你的赚钱机会,也不要转而去使用其他广告商的服务。
以我自己的 dbanotes.net 来说,第二条稍微有点违反,第三条,用户留言的下方放了 Google 推荐软件的广告,有这个嫌疑,下次 Rebuild 的时候去掉。第六条偶尔会违反,的确是对广告内容感兴趣,自己还真不知道这样会有问题。第 10 条,有一段时间真想不使用 Google Adsense 的服务了,不过倒不是因为上面列举的,而是因为 Google Adsense 脚本会把页面拖得很慢。
我自己有个疑问,有多少 Google Adsense 用户仔细看过那个用户协议呢?
EOF
Updated:感谢留言的 IB 指出的一处错误 :)