大型项目开发中,常用的数据库,当属Oracle。但Oracle
成都创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为武城企业提供专业的成都做网站、网站建设,武城网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
客户端安装就要一张光盘,体积很大。而且安装后,基本上就用2个功能:TNS配置服务名,SqlPlus。在开发过程中,大量使用Toad和PL/SQL
Developer。因此,Oracle客户端安装盘,仅仅是被作为一个驱动而需要,根本没必要装那么大的空间。因此,本文给出了如何使用精简的Oracle客户端。
我使用两种精简的Oracle客户端,大家可以任选其一:
一、Oracle 9i (版本: 9.0.1.0.1)精简客户端 绿色版
占用35M空间, 带SqlPlus工具。绿色版,超级推荐!!!
使用方法:
1. 确定OracleHome目录:比如我准备把Oracle 客户端放在 d:\program files\Oracle 下
2. 把ora90目录复制到d:\program files\Oracle 目录下
3. 如果你的OracleHome目录与我的不同,请用计事本打开install_oracle9i.reg 文件,替换d:\\progra~1\\Oracle,保存。
4. 双击install_oracle9i.reg, 导入注册表。
5.
用计事本打开D:\Program Files\Oracle\ora90\network\ADMIN\tnsnames.ora
文件,增加一个自己的数据库别名配置,保存。 可以复制其中的一个,然后进行修改,主要改=前面的别名,Host为IP地址,
SERVICE_NAME为数据库服务器的实例名。
6. 然后运行D:\Program Files\Oracle\ora90\BIN\sqlplusw.exe,输入用户名/密码@别名,即可。
卸载方法:
1. 双击uninstall_oracle9i.reg, 导入注册表。
2. 删除d:\program files\Oracle 目录。
(2)Oracle9i默认情况下会把ctxsys用户锁定,请以DBA身份登陆Oracle,把用户ctxsys解锁,并修改其密码为ctxsys,以便于我们后面登陆Text Manager
(3)进入Oracle的text manager,点程序-Oracle-OracleHome92-Enterprise Manager Console。选独立启动,然后选工具栏最下面的应用程序-text Manager,这时会要求您输入用户名和密码,用户名ctxsys,密码ctxsys
(4)选择首选项——〉语言指定器——〉CTXSYS,选一个点类似创建,输入指示器的名字如chinese_lexer,选择lexer下的chinese_vgrnm_lexer 。
(5)建立索引,在索引上点右键,然后选创建CONTEXT索引,这里要注意方案要选择您自己的表空间,如我有个表SZPOI在表空间SUZHOU中,现在我要对该表的UNITNAME字段建立全文索引,那么方案选suzhou,表选szpoi,字段选unitname,首选项中选择chinese_lexer 。
这样全文检索就建好了,并用chinese_vgram_lexer作为分析器。
SELECT score(1),t.unitname,t.objectid,t.eminx,t.eminy,t.mpfullname,t.dianhua FROM szpoi t WHERE contains (unitname, '规划局,吴中分局', 1) 0 order by score(1) desc
这个语句的意思是在表szpoi中查询unitname包含规划局和吴中分局两个关键字的记录,并按匹配度从高到低排序。
大功告成了吗?没有!
Oracle通过PROFILE中的PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX来确定密码是否可以重用以及密码重用的限制
但是 经过测试 发现Oracle的ADMINISTRATOR GUIDE里面的描述是错误的 我查阅了一下METALINK METALINK上的一篇文章虽然对这两个参数进行了比较详细的说明 但是仍然有一部分描述是错误
PASSWORD_REUSE_TIME是重用密码的最小时间间隔 单位是天 可以给出整数或分数 如 / 表示 分钟(出于效率的考虑 oracle不会每分钟都去进行检查 一般来说 有 分钟左右的误差 因此如果这个数小于 / 则没有多大的意义)
PASSWORD_REUSE_MAX是重用密码前更换密码的最小次数 这两项本身没有任何异议 关键是两项如何配合使用 可以分为 种情况进行描述
一 PASSWORD_REUSE_MAX和PASSWORD_REUSE_TIME都为UNLIMITED
这时密码可以任意重用 没有限制这也是DEFAULT profile的默认值 当这两项都为UNLIMITED时 认为这两个参数没有使用 因此 密码重用没有任何限制
SQL create profile prof_test limit password_reuse_max unlimited password_reuse_time unlimited; 配置文件已创建 SQL create user test identified by test profile prof_test; 用户已创建 SQL alter user test identified by test; 用户已更改 SQL alter user test identified by test; 用户已更改
二 PASSWORD_REUSE_MAX和PASSWORD_REUSE_TIME中有一个为UNLIMITED 另一个为其他值
这个时候你的密码将永远无法重用
看看administrator guide上是怎么说的
Use the CREATE PROFILE statement to specify a time interval during which users cannot reuse a password In the following statement a profile is defined where the PASSWORD_REUSE_TIME clause specifies that the user cannot reuse the password for days CREATE PROFILE prof LIMIT PASSWORD_REUSE_TIME PASSWORD_REUSE_MAX UNLIMITED; In the next statement the PASSWORD_REUSE_MAX clause specifies that the number of password changes the user must make before the current password can be used again is three CREATE PROFILE prof LIMIT PASSWORD_REUSE_MAX PASSWORD_REUSE_TIME UNLIMITED; Note: If you specify PASSWORD_REUSE_TIME or PASSWORD_REUSE_MAX you must set the other to UNLIMITED or not specify it at all
文档告诉我们 只使用其中一个 把另外一个设置为UNLIMITED 但是这是不正确的 这样会导致你的密码永远无法重用
SQL alter profile prof_test limit password_reuse_max ; 配置文件已更改 SQL select resource_name limit from dba_profiles where profile = PROF_TEST and resource_type = PASSWORD ; RESOURCE_NAMELIMIT FAILED_LOGIN_ATTEMPTSDEFAULT PASSWORD_LIFE_TIMEDEFAULT PASSWORD_REUSE_TIMEUNLIMITED PASSWORD_REUSE_MAX PASSWORD_VERIFY_FUNCTIONDEFAULT PASSWORD_LOCK_TIMEDEFAULT PASSWORD_GRACE_TIMEDEFAULT 已选择 行 SQL alter user test identified by test; 用户已更改 SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 SQL alter user test identified by t ; 用户已更改 SQL alter user test identified by t ; 用户已更改 SQL alter user test identified by t ; 用户已更改 SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令
修改profile后 只对test用户的后续操作有效 第一次可以修改密码为test是因为oracle没有记录初始密码 而第二次修改就会失败 因为密码已经不能重用了
根据文档 我们只需要修改密码三次 就可以重用 但是测试的结果确是密码无法在重用
SQL alter profile prof_test limit password_reuse_max unlimited; 配置文件已更改 SQL alter user test identified by test; 用户已更改 SQL alter profile prof_test limit password_reuse_time / ; 配置文件已更改 SQL select resource_name limit from dba_profiles where profile = PROF_TEST and resource_type = PASSWORD ; RESOURCE_NAMELIMIT FAILED_LOGIN_ATTEMPTSDEFAULT PASSWORD_LIFE_TIMEDEFAULT PASSWORD_REUSE_TIME PASSWORD_REUSE_MAXUNLIMITED PASSWORD_VERIFY_FUNCTIONDEFAULT PASSWORD_LOCK_TIMEDEFAULT PASSWORD_GRACE_TIMEDEFAULT 已选择 行 SQL set time on : : SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 : : SQL : : SQL : : SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 : : SQL : : SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 : : SQL set time off
修改PASSWORD_REUSE_TIME为 / 也就是说大概 分钟的时间 考虑的oracle的误差 我们在 分钟和 分钟后分别进行测试 结果发现密码仍然无法重用
三 PASSWORD_REUSE_MAX和PASSWORD_REUSE_TIME都不为UNLIMITED
这时只需满足任意一个条件就可以重用密码
Metalink上的文章在这里描述有误 密码重用不需要同时满足两个条件 只要满足一个既可
SQL alter profile prof_test limit password_reuse_time unlimited; 配置文件已更改 SQL alter user test identified by test; 用户已更改 SQL alter profile prof_test limit password_reuse_max password_reuse_time / ; 配置文件已更改 SQL set time on : : SQL alter user test identified by test; 用户已更改 : : SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 : : SQL alter user test identified by t ; 用户已更改 : : SQL alter user test identified by t ; 用户已更改 : : SQL alter user test identified by t ; 用户已更改 : : SQL alter user test identified by test; 用户已更改 : : SQL : : SQL alter user test identified by test; alter user test identified by test * ERROR 位于第 行: ORA : 无法重新使用口令 : : SQL : : SQL : : SQL alter user test identified by test; 用户已更改
lishixinzhi/Article/program/Oracle/201311/18309