使用C#在Progress OpenEdge上执行查询的授权

问题描述 投票:1回答:1

我已经执行了安装和配置Progress OpenEdge 11.7数据库的所有过程。我使用用户名和密码配置了DSN,并访问了我创建的数据库和正确连接的所有内容。

执行与数据库的连接后,我在执行查询以获取数据时收到以下错误消息:

错误:错误[HY000] [DataDirect] [ODBC进度OpenEdge有线协议驱动程序] [OPENEDGE]访问被拒绝(授权失败)(7512)

我已访问OpenEdge Management以保证我的用户的所有权限,如下所示,但我仍然收到此错误消息。

enter image description here

码:

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;
    }

可能有什么不对?

c# database-administration openedge progress-4gl progress-db
1个回答
0
投票

您从“数据管理”显示的权限是4gl权限。 4gl和SQL-92引擎不共享权限。

如果没有其他任何操作,则初始SQL dba是创建db的用户。根据Progress的版本以及如何设置和创建此数据库,您可能还有一个“sysprogress”用户,他可能是系统DBA用户。

“renan”用户标识可能不是SQL用户 - 这也取决于Progress版本如何设置此db。

© www.soinside.com 2019 - 2024. All rights reserved.