如何获得debuggingpostgres的权限?

我有一个使用C方法作为Postgres数据库中的函数的系统。 当我尝试用我的用户帐户运行gdb时,我得到这个: ptrace: Operation not permitted

它看起来像一个许可的事情。 当我运行gdb作为“postgres”用户时,它似乎工作。 我想继续运行postgres作为“postgres”用户,而不是在我想debugging的时候运行postgres。 我可以以某种方式授予我的用户帐户“ptrace”权限的过程有问题? 把自己添加到“postgres”组似乎没有帮助。

编辑:我发现这在ptrace手册页上:

 EPERM指定的过程不能被跟踪。 这可能是因为
              父母没有足够的权限(所需的能力
              是CAP_SYS_PTRACE); 非根进程不能跟踪进程
              他们不能发送信号给那些运行set-user-
               ID / set-group-ID程序,原因很明显。 或者,
              该进程可能已经被跟踪,或者是init(8)(PID 1)。

那么我怎么能给我的用户CAP_SYS_TRACE权限?

看来CAP_SYS_TRACE是由LIDS控制的,可能或不可能安装在您的计算机上。

如果你在postgres上进行繁重的开发,你可能更愿意在你自己的账户下运行一个postgres的实例 – 这就是我所做的一些服务器的工作。