C# 甲骨文赢得';无法使用特定的用户id打开

C# 甲骨文赢得';无法使用特定的用户id打开,c#,oracle,windows-server-2008,C#,Oracle,Windows Server 2008,我有一个从任务调度器运行的应用程序。如果我从我的帐户运行它,它可以正常运行,但如果我从系统帐户运行它,它就不能正常运行(该帐户在服务器上的权限与我的类似(它甚至是管理员),但密码不会过期。当我从系统帐户运行密码时,打开Oracle时失败。我的应用程序不会引发异常。它只是死机。但是,事件查看器具有以下功能: Application: M921.exe Framework Version: v4.0.30319 Description: The process was terminated due

我有一个从任务调度器运行的应用程序。如果我从我的帐户运行它,它可以正常运行,但如果我从系统帐户运行它,它就不能正常运行(该帐户在服务器上的权限与我的类似(它甚至是管理员),但密码不会过期。当我从系统帐户运行密码时,打开Oracle时失败。我的应用程序不会引发异常。它只是死机。但是,事件查看器具有以下功能:

Application: M921.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
   at Oracle.DataAccess.Client.OracleException.get_Source()
   at M921.Program.Main(System.String[])

Faulting application name: M921.exe, version: 1.0.0.0, time stamp: 0x58c2d17b
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x037d2be3
Faulting process id: 0x564
Faulting application start time: 0x01d299ba8cb4ef63
Faulting application path: D:\ScriptingApplications\M921\M921.exe
Faulting module path: unknown
Report Id: cbb37f30-05ad-11e7-97a4-005056824753
如果我检查跟踪日志,我会发现:

<msg time='2017-03-10T10:11:23.998-05:00' org_id='oracle' comp_id='clients'
 msg_id='3079483318' type='INCIDENT_ERROR' level='1'
 host_id='PWN401AV1369' host_addr='::1' prob_key='oci 24550 [3221225477]'
 errid='15721' detail_path='C:\Users\scrptadmin\Oracle\oradiag_scrptadmin\diag\clients\user_scrptadmin\host_2384361277_82\trace\ora_3292_1232.trc'>
 <txt>Errors in file



C:\Users\scrptadmin\Oracle\oradiag_scrptadmin\diag\clients\user_scrptadmin\host_2384361277_82\trace\ora_3292_1232.trc  (incident=15721):
oci-24550 [3221225477] [Unhandled exception: Code=c0000005 Flags=0
] [] [] [] [] [] [] [] [] [] []
 </txt>
</msg>
<msg time='2017-03-10T10:11:24.186-05:00' org_id='oracle' comp_id='clients'
 msg_id='dbgexProcessError:1266:3370026720' type='TRACE' level='16'
 host_id='PWN401AV1369' host_addr='::1'>
 <txt>Incident details in: C:\Users\scrptadmin\Oracle\oradiag_scrptadmin\diag\clients\user_scrptadmin\host_2384361277_82\incident\incdir_15721\ora_3292_1232_i15721.trc
 </txt>
</msg>

文件中的错误
C:\Users\scrptadmin\Oracle\oradiag\u scrptadmin\diag\clients\user\u scrptadmin\host\u 2384361277\u 82\trace\ora\u 3292\u 1232.trc(事件=15721):
oci-24550[322225477][未处理的异常:代码=c0000005标志=0
] [] [] [] [] [] [] [] [] [] []
事件详细信息位于:C:\Users\scrptadmin\Oracle\oradiag\u scrptadmin\diag\clients\user\u scrptadmin\host\u 2384361277\u 82\incdir\u 15721\ora\u 3292\u 1232\u i15721.trc
我已经检查了我能想到的所有权限。数据库凭据是oracle凭据(不是windows凭据;用户名和密码是连接字符串的一部分)

我使用的是12.1.0版oracle客户端


我很困惑。

因为您没有提供任何源代码,我只是在这里猜测。要使用特权帐户(SYSDBA或SYSOPER)进行连接,您需要在连接字符串中添加DBA privilege属性:

//Connect scott/tiger as SYSDBA   
con.ConnectionString = "User Id=scott;Password=tiger;" + 
  "DBA Privilege=SYSDBA;Data Source=oracle;";
Oracle文档