孔孟之乡

下午一点多从江苏淮安出发,从雨天走到晴天又走到阴天,在下午4点多的时候到达曲阜,孔孟之乡。 下榻在曲阜国际青年旅舍。从住的二楼望下去,后院颇为古色古香。 从青年旅社走出去几分钟就是颜庙,已经都休息了,游览只能放到明天,颜庙门口的枯树参天,古韵悠悠。 曲阜是一个四处都有古老韵味的小城市,夕阳之下的街道显得如此悠闲,电动小摩托穿梭在牌楼之间,让人很是感慨时光匆匆。 明天逛完孔庙,直接开到沧州。也许花一天时间去逛逛吴桥杂技大世界。

Back to Beijing

跨越愚人节,3月30日开始,从安徽回到北京。计划行程:马鞍山-淮安-曲阜-济南-沧州吴桥-北京。预计4月3日抵达北京。 春暖花开,且行且住,一路向北。

User Default Password Check in Oracle 11g

在数据库安全性检查中有一项首先要完成的工作,就是检查数据库中的用户密码是否还仍然保留着默认值,比如sys的密码是否还是change_on_install,system的密码是否还是manager,scott的密码是否还是tiger。 在Oracle 11g之前,我们需要手工来完成这样的工作,大概步骤是: 1. 创建一张自定义的表,保存下常用的系统用户以及默认密码的HASH值。 2. 将系统中的用户密码HASH值与该表中的HASH值比较,如果相同,则表明还在使用默认值。 注意:在数据字典中存储的密码是被HASH算法加密过的,加密后的值不但跟密码本身有关还跟用户名有关,也就是,如果是不相同的用户名那么即使是完全相同的密码,加密后的HASH值也是不一样的。这样保证了每一个用户的每一个密码都有自己独一无二的HASH值。 在Oracle 11g之前,加密后的密码可以从DBA_USERS数据字典的PASSWORD字段中获得,因此可以通过这个字段中存储的值来做是否是默认值的检查。但是在11g中,PASSWORD字段却不再显示密码的内容了。 先看一下文档中对这个字段的描述: Indicates whether the user is authenticated by OID (GLOBAL) or externally authenticated (EXTERNAL); NULL otherwise SQL> select username,decode(password,null,’NULL’,password) password from dba_users; USERNAME PASSWORD —————————— —————————— MGMT_VIEW NULL SYS NULL SYSTEM NULL DBSNMP NULL SNPM NULL SYSMAN NULL SNPW NULL SCOTT NULL KAMUS NULL OUTLN…