【问题标题】:C# connect Progress Database ErrorC#连接进度数据库错误
【发布时间】:2016-03-13 08:09:15
【问题描述】:

我想用 c# 连接本地的进度数据库。

我的 C# 代码是:

 string connectionString = "DSN=OpenEdge Wire Protocol;Host = localhost; DB = E:\\programs\\DBs\\TrDB\\trnakdb; UID = connuser; PWD = 123456; PORT = 11112";
        DataTable dt = new DataTable();
        int rows;

        using (OdbcConnection connection = new OdbcConnection(connectionString))
        using (OdbcCommand command = connection.CreateCommand())
        using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
        {
            connection.Open();
            command.CommandText = "SELECT * FROM PUB.FTTEFBAS";
            rows = adapter.Fill(dt);
        }

        Console.WriteLine("adapter.Fill() returned {0}", rows);
        Console.WriteLine("The data table contains {0} rows and {1} columns.",
          dt.Rows.Count,
          dt.Columns.Count
          );
        foreach (DataRow dataRow in dt.Rows)
        {
            string babili = dataRow.ItemArray.ToString()+"####";
            for (int key = 0; key < dataRow.ItemArray.Length; ++key)
                babili += "\t" + key + "=>" + dataRow.ItemArray[key];

            Console.WriteLine(babili);
        }

但它给出了错误:

System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Access denied (Authorisation failed) (7512)

我可以使用此用户名连接进度数据字典或数据管理工具。

如果我尝试选择系统表,则不会发生错误。但是当我尝试从 PUB 模式中列出任何表时,它会出错。

谢谢

M.亚辛比勒

【问题讨论】:

    标签: c# database odbc openedge progress-db


    【解决方案1】:

    DBA 需要向您的用户 ID 授予 SQL 权限。字典等使用 4GL 权限,默认情况下是完全开放的。默认情况下,SQL 授权是限制性的。

    如果您知道 DBA 用户 ID(通常是“sysprogress”)和密码,您可以尝试使用它来证明您的连接性。并根据需要向用户授予权限。

    您可能会发现这个 kbase 很有帮助:http://knowledgebase.progress.com/articles/Article/20143/p

    【讨论】:

    • 我不知道 DBA 密码。我在本地服务器上设置了progress opensge 11.6 的试用版。 sysprogress 有默认密码吗?
    • 默认情况下我认为它是空白的。或者也许是“系统进度”。
    • 我解决了问题。它删除了。我创建了一个新的。非常感谢。
    • 供参考,sysprogress“用户”的权限是在数据库的SQL端设置的,但没有用户。需要对用户名进行授权才能执行任何操作(即查询表),但任何用户名和密码(包括空白)都可以用于登录数据库(唯一的例外是 sysprogress 用户名。如它具有特殊权限,仅在启用身份验证并且必须创建用户帐户才能使用时才起作用)。一旦创建了第一个用户,身份验证就会打开,并且不再接受空白密码。 HTH
    猜你喜欢
    • 2015-09-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多