在不知道用户和密码的情况下连接到进度数据库

发布于 2025-01-21 01:10:15 字数 918 浏览 2 评论 0原文

设置:Progress 11.5 数据库位于 Linux (CentOS) 服务器上,并提供 proenv。

我正在尝试通过 proenv 和 sqlexp 连接到 Progress 数据库。我无法,因为我不知道用户名和密码。我无法从其他人那里获得它,因为没有人知道这些凭据。我在此服务器上具有 root 访问权限。

如何连接到此数据库,以便稍后创建另一个帐户以通过 ODBC 使用?

我已经尝试过的是:

使用 root 帐户,打开 proenv,从而

/dlcloc/dlc-11.5/bin/proenv

启动 proenv,然后当我尝试

sqlexp -db rep -H localhost -S 2502 {-user ?? -password ??}

考虑到其中有一个数据库,其中

/dbloc/prod/rep/

包含像 rep.db 这样的文件, rep.lg、rep.b1、rep.d1 和端口 2502 下本地主机上可用的其他一些文件(通过 ps aux | grep rep 确认)

即使没有用户名和密码,我也会收到错误

错误:[DataDirect][OpenEdge JDBC 驱动程序][OpenEdge] 访问被拒绝(授权失败)。 (8933)

这对我来说是显而易见的,但无法获取用户名和密码。考虑到我的环境,我该如何解决这个问题才能建立成功的连接?

附加说明:有一个名为 progressuser 的特殊用户,在该用户下创建数据库,但从 root 模拟该用户为 su Progressuser 并执行相同的过程会产生相同的结果。

Setup: Progress 11.5 databases sitting on Linux (CentOS) server, with proenv available.

I'm trying to connect to Progress database through proenv and sqlexp. I'm unable to, since I don't know the user and password. There's no way I can obtain it from someone else, as nobody knows these credentials. I have root access on this server.

How can I connect to this database so that I can later create another account to use through ODBC?

What I've tried already is:

Being on root account, opening up proenv by

/dlcloc/dlc-11.5/bin/proenv

which brings up proenv, and then when I try

sqlexp -db rep -H localhost -S 2502 {-user ?? -password ??}

given that there's a db within

/dbloc/prod/rep/

with files like rep.db, rep.lg, rep.b1, rep.d1 and some other files avilable on localhost under port 2502 (confirmed through ps aux | grep rep)

I get an error even without user and password

Error: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Access denied(Authorisation failed). (8933)

Which is obvious from my side, but there's no way to get user and password. How can I go around this given my environment to be able to establish a successfull connection?

Additional note: There's a special user called progressuser under which database is created, but impersonating that user from root as su progressuser and going through the same process yields the same results.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奢欲 2025-01-28 01:10:15

您可以尝试使用本机 4GL 代理访问数据库。并可能尝试此解决方案:

https://knowledgebase.progress.com/articles/Article/P9483< /a>

首先运行 proenv 脚本,它将设置路径和环境变量。

然后确定 4GL 代理在哪个端口上运行。如果您不知道:检查您的数据库日志文件 (rep.lg)。寻找类似这样的内容:

[YYYY/MM/DD@HH:MM:SS.sss+TZ] P-XXXX       T-YYYY I BROKER  0: (4262)  Servicename (-S): NNNN.

Ns 将是您的端口。它可能是要签入 /etc/services 的服务名称

然后使用连接的数据库访问进度编辑器:

pro -db rep -H <IP-address/domain name> -S <port number/service name>

您应该看到一个基本的编辑器。要运行某些内容,请按 Ctrl+X 或 F1。访问菜单 F3。退出某项 F4。

使用 F3 访问菜单,然后按箭头键进入“工具”->“工具”数据词典。现在您应该能够按照上面提供的链接中的步骤进行操作。

也许在你开始与用户搞混之前确保你有一个有效的备份是个好主意......

You could try accessing the database using the native 4GL broker. And possibly try this solution:

https://knowledgebase.progress.com/articles/Article/P9483

First run that proenv-script, it will set paths and environment variables.

Then identify on which port the 4GL broker runs. If you dont know: check your database log file (rep.lg). Look for something like:

[YYYY/MM/DD@HH:MM:SS.sss+TZ] P-XXXX       T-YYYY I BROKER  0: (4262)  Servicename (-S): NNNN.

The Ns will be your port. It might possibly be a service name to check in /etc/services

Then access the Progress Editor with a connected database:

pro -db rep -H <IP-address/domain name> -S <port number/service name>

You should see a rudimentary editor. To run something you press Ctrl+X or F1. To access the menu F3. To exit something F4.

Access the Menu using F3 and arrow-key your way to Tools -> Datadictionary. Now you should be able to follow the steps in the link provided above.

Perhaps its a good idea to make sure you have a valid backup before you start messing around with the users...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文