我已经执行了安装和配置Progress OpenEdge 11.7数据库的所有过程。我使用用户名和密码配置了DSN,并访问了我创建的数据库和正确连接的所有内容。
执行与数据库的连接后,我在执行查询以获取数据时收到以下错误消息:
错误:错误[HY000] [DataDirect] [ODBC进度OpenEdge有线协议驱动程序] [OPENEDGE]访问被拒绝(授权失败)(7512)
我已访问OpenEdge Management以保证我的用户的所有权限,如下所示,但我仍然收到此错误消息。
码:
public static bool InsertItem(string itCodigo, string descItem, string um)
{
bool ret = false;
string connectString = "DSN=DSN-Name;uid=renan;pwd=*****;host=localhost;port=XXXX;db=DatabaseName;";
using (OdbcConnection connection = new OdbcConnection(connectString))
{
try
{
connection.Open();
IDbCommand dbcmd = connection.CreateCommand();
string sqlstr = "select * from Hipolabor.pub.Item";
dbcmd.CommandText = sqlstr;
using (IDataReader rdr = dbcmd.ExecuteReader())
{
var b = rdr.Read();
}
}
catch (Exception e)
{
return false;
}
finally
{
connection.Close();
}
}
return ret;
}
可能有什么不对?
您从“数据管理”显示的权限是4gl权限。 4gl和SQL-92引擎不共享权限。
如果没有其他任何操作,则初始SQL dba是创建db的用户。根据Progress的版本以及如何设置和创建此数据库,您可能还有一个“sysprogress”用户,他可能是系统DBA用户。
“renan”用户标识可能不是SQL用户 - 这也取决于Progress版本如何设置此db。