在DB2中以用户身份执行

xqnpmsa8  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(174)

我们正在尝试调试一个非常旧的使用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中是否有相同的命令。
我们的目标是尝试为DB2运行类似于SQL Server Profiler的代码,并嗅探查询。
是的,我已经尝试运行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而不犯任何罪。
我还教了从SQLServer连接到DB2数据库和使用PolyBase,但据我所知,这样的特性只允许我查询,我不能嗅探参数。

jm81lzqq

jm81lzqq1#

Db2有几种“模拟”的方法,但都在安全体系结构内,并且经过全面审核。

  • 我会建议 checkout “Trusted Context“,基本上是基于预定义的连接属性添加权限或切换角色。
  • 另一个选项是查看SET SESSION AUTHORIZATION(也称为SET SESSION_USER)。它会将SESSION_USER切换为不同的用户ID。

如前所述,这与适当的权限和安全管理员有关。
根据您要检查的内容,db2trc和其他命令也可以使用。

相关问题