最近做服务器配置,操作系统为server2003/xp,程序脚本语言asp,数据库为orale9i
问题描述
数据库连接方式如下:
1)OLE DB Provider for Oracle (from Microsoft)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Provider=msdaora;" & _
"Data Source=MyOracleDB;" & _
"User Id=myUsername;" & _
"Password=myPassword;"
oConn.Open strConn
%>
2) OLE DB Provider for Oracle (from Oracle)
<%
Dim oConn,strConn
Set oConn=Server.CreateObject(“ADODB.Connection”)
StrConn= "Provider=OraOLEDB.Oracle;" & _
"Data Source=MyOracleDB;" & _
"User Id=myUsername;" & _
"Password=myPassword;"
oConn.Open strConn
%>
确认连接没有错误
可是运行程序总是报错 ErrorNumber:3706 提供程序不存在,或未正确安装
oracle安装没有问题
在网上查了很多资料发现,是oracle92(不知道其他版本有没有bug)的bug
由于 oracle被安装在ntfs格式的磁盘空间中,所以出现了权限问题
解决方案
对%oracle_home%(表示安装文件夹),做以下权限设置
右键 “属性”-“安全”-“添加”
将 IUSER_%computname%(计算机名)和IWAM_%computname%两个用户加入
然后“高级”
-“权限”中的 “用在此显示的可以应用到子对象的项目替代所有子对象的权限项目”打勾
-“审核”中的 “用在此显示的可以应用到子对象的项目替代所有子对象的审核项目”打勾
-“所有者”中的 “替换子容器及对象的所有者”打勾
“应用”-“确定”
对%oracle_home%ora92(这里是数据库实例的名称,根据设定的不同而不同)
设置如下权限
右键 “属性”-“安全”-“添加”
将 Authenticated User 加入
用赋予 “完全控制”权限
“应用”-“确定”
OK 问题解决
----以此备忘----