C# &引用;ORA-01031:特权不足“;at connection.Open();
我正在尝试使用ORACLE.ManagedDataAccess.Client作为SYSDBA从C#桌面应用程序连接到Windows7 64x版本上的ORACLE 10g数据库 以下是配置文件中的连接字符串:C# &引用;ORA-01031:特权不足“;at connection.Open();,c#,oracle10g,ado,dbproviderfactories,C#,Oracle10g,Ado,Dbproviderfactories,我正在尝试使用ORACLE.ManagedDataAccess.Client作为SYSDBA从C#桌面应用程序连接到Windows7 64x版本上的ORACLE 10g数据库 以下是配置文件中的连接字符串: <add name="default" connectionString="User Id=scott;Password=tiger;DBA Privilege=SYSDBA;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (P
<add name="default" connectionString="User Id=scott;Password=tiger;DBA Privilege=SYSDBA;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = sherif-PC)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =orcl2)));" providerName="Oracle.ManagedDataAccess.Client"/>
我必须使用DbProviderFactory,因为它必须是不同类型数据库的通用解决方案此外,这里是ORACLE_主环境变量“D:\ORACLE\product\10.2.0\db_2\BIN”;默认情况下,SCOTT用户没有sysdba权限。如果您尚未授予这些权限,则错误消息是正确的。简单地说,不要试图连接,如果用户是特权,一切都会好起来。。。(假设其他一切都是正确的!)太好了,我怎么没意识到呢!本:你就是那个人:)
ConnectionStringSettings ConnectString = ConfigurationManager.ConnectionStrings["default"];
_dbFact = DbProviderFactories.GetFactory(ConnectString.ProviderName);
_con = _dbFact.CreateConnection();
_con.ConnectionString = ConnectString.ConnectionString;
using (_con)
{
_con.Open();
using (_cmd = _con.CreateCommand())
{
_cmd.CommandText = "select * from EMP;";
using (IDataReader reader = _cmd.ExecuteReader())
{
res = reader.GetString(1);
}
}
_con.Close();
MessageBox.Show(res);
}