0

我们正在尝试调试一个使用 DB2 的非常古老的 Web 应用程序。

我想运行跟踪以查看单击按钮时会发生什么,但是一旦尝试,我就会收到此错误:

create event monitor ........ for statement where AUTH_ID='.......' write to table
"USER" does not have privilege to perform operation "CREATE EVENT MONITOR".. SQLCODE=-552, SQLSTATE=42502,

在此处输入图像描述

对我来说很明显,我们的用户没有足够的权限来运行跟踪。

在 T-SQL 中有一种方法可以模拟另一个用户:

USE AdventureWorks2019
GO
EXECUTE AS USER = 'Test';
SELECT * FROM Customer;
REVERT;

我想知道 DB2 中是否有相同的命令。

目标是尝试运行类似SQL Server ProfilerforDB2并嗅探查询。

是的,我已经尝试运行GRANT DBADM ON DATABASE TO USER E.....O了,当然系统回复了:

"E.....O" does not have the privilege to perform operation "GRANT".. SQLCODE=-552, SQLSTATE=42502, DRIVER=3.69.56

我们被卡住了,无法移动,因为我们不知道查询是如何工作的。向我们的用户要求更多特权不是一种选择,因为我们正在将客户从竞争对手迁移到我们这边。

我正在尝试做的是一种privilege escalation不犯罪。

我还教过如何从 SQL Server 连接到 DB2 数据库并使用PolyBase,但据我所知,这样的功能只允许我查询,我无法嗅探参数。

4

1 回答 1

1

Db2 有几种“模拟”方式,但都在安全架构内并经过全面审计。

  • 我建议查看“受信任的上下文”,基本上是根据预定义的连接属性添加权限或切换角色。
  • 另一种选择是查看SET SESSION AUTHORIZATION(也称为 SET SESSION_USER)。它将 SESSION_USER 切换到不同的用户 ID。

如前所述,这适用于适当的权限和所涉及的安全管理员。

根据您要检查的内容,也可以使用 db2trc 和其他命令。

于 2021-12-09T10:48:46.433 回答