查询报告
PAM360 支持创建基于查询的报告,允许用户通过编写自定义 SQL 查询或修改现有查询,从数据库中提取特定数据。此功能使用户能够从各种表中获取信息,并将其格式化为可操作的报告。例如,您可以针对以下场景创建报告:
- 识别自自动登录启用后从未更改过的密码
- 查找自资源创建以来从未更改过的密码
- 成员完全相同的用户组列表
- 电子邮件地址完全相同的用户列表
PAM360 提供了按类别组织的预定义查询报告,例如:
- 已记录的会话
- 资源组
- 资源
- 自助服务权限提升
- SSH 命令控制
- 用户组
- 用户
- 零信任
每个类别包含多个查询报告,用户可以添加新报告或创建自定义类别。要创建新的自定义查询报告类别,请导航至“报告”>>“查询报告”>>“管理类别”,然后点击“添加类别”。在弹出的窗口中,输入类别名称并点击“保存”。
本文将引导您了解以下主题:
1. 创建查询报告
您可以通过两种方式生成基于查询的报告:
- 使用预定义类别(如资源组、资源、用户组和用户)中的默认查询报告。
- 利用产品界面中提供的表结构编写自己的 SQL 查询,从而创建自定义报告。
在创建新查询报告时,您可以直接使用默认报告,或编辑查询并将其保存为新报告。或者,若要使用您自己的 SQL 查询从头开始创建新查询,请按照以下步骤操作:
- 导航至报告 >> 查询报告 ,并点击右上角的“创建查询报告”。
- 在弹出的界面中,输入“报告名称”和“报告描述”以便于识别。
- 从预定义列表中选择一个报告类别,或点击“添加新类别”创建新类别。
- 根据数据的敏感程度,将报告的“隐私”设置为“所有人”或“仅限本人”。
- 编写 SQL 查询语句以提取所需数据。您可以参考界面左上角的“表结构”来了解数据库结构。

- 编写完查询后,点击“生成报告”或“保存”以备将来使用。
自定义查询的 SQL 占位符
编写自定义 SQL 查询时,可使用以下占位符:
- `decrypt(COLUMNNAME)`:用于解密加密的列。解密时应提供别名。
附加说明
加密列可通过SCHAR数据类型识别,该类型在“表结构”中可见。
- 请使用 `%GREATERTHAN%`、`%GREATERTHANEQUAL%`、`%LESSTHAN%` 和 `%LESSTHANEQUAL%` 作为比较运算符。
2. 查询报告示例场景
以下是一些适用于常见用例的 SQL 查询:
场景 1 - 自动登录后未更改密码
此查询报告可识别在用于目标系统的自动登录后未被轮换的密码。自动登录后的定期密码重置对安全至关重要。
SELECT
Ptrx_Resource.RESOURCENAME AS "资源名称",
Ptrx_Account.LOGINNAME AS "账户名称",
Ptrx_DummyPwdNotChan.retrievedtime AS "最后访问时间",
Ptrx_ResourceSystem.OPERATINGSYSTEM AS "类型",
Ptrx_Resource.LOCATION AS "位置",
Ptrx_Resource.RESOURCEDESC AS "描述"
FROM
(
SELECT
accountid,
retrievedtime
FROM
(
SELECT
Ptrx_DummyPwdRetr.accountid AS accountid,
Ptrx_DummyPwdRetr.accessedtime AS retrievedtime,
Ptrx_DummyPwdChanged.time AS time
FROM
(
SELECT
RESOURCEID,
ACCOUNTID,
MAX(LASTACCESSEDTIME) AS accessedtime
FROM
Ptrx_UserAudit
INNER JOIN Ptrx_AuditConfiguration
ON Ptrx_AuditConfiguration.CONF_ID =
Ptrx_UserAudit.OPERATIONTYPE
WHERE
Ptrx_AuditConfiguration.OPERATION_TYPE = 'Password Retrieved'
AND REASON LIKE '%auto logon helper reason%'
GROUP BY
RESOURCEID,
ACCOUNTID
) Ptrx_DummyPwdRetr
LEFT JOIN
(
SELECT
ACCOUNTID,
MAX(LASTACCESSEDTIME) AS time
FROM
Ptrx_UserAudit
INNER JOIN Ptrx_AuditConfiguration
ON Ptrx_AuditConfiguration.CONF_ID =
Ptrx_UserAudit.OPERATIONTYPE
WHERE
Ptrx_AuditConfiguration.OPERATION_TYPE = 'Password Changed'
GROUP BY
ACCOUNTID
) Ptrx_DummyPwdChanged
ON Ptrx_DummyPwdRetr.accountid = Ptrx_DummyPwdChanged.accountid
AND Ptrx_DummyPwdChanged.time %大于%
Ptrx_DummyPwdRetr.accessedtime
) AS Ptrx_DummyPwdRetrAndChan
WHERE
Ptrx_DummyPwdRetrAndChan.time IS NULL
) AS Ptrx_DummyPwdNotChan
INNER JOIN Ptrx_Account
ON Ptrx_DummyPwdNotChan.accountid = Ptrx_Account.ACCOUNTID
INNER JOIN Ptrx_Resource
ON Ptrx_Resource.RESOURCEID = Ptrx_Account.RESOURCEID
INNER JOIN Ptrx_ResourceSystemMembers
ON Ptrx_ResourceSystemMembers.RESOURCEID =
Ptrx_Resource.RESOURCEID
INNER JOIN Ptrx_ResourceSystem
ON Ptrx_ResourceSystem.OSID =
Ptrx_ResourceSystemMembers.OSID
ORDER BY
Ptrx_Resource.RESOURCENAME;
场景 2 - 自资源创建以来从未更改密码
此查询可帮助您追踪自创建以来密码从未更改过的资源。定期重置密码至关重要,本报告有助于追踪所有密码过时的资源。
您还可以重写以下查询,以查找在特定期间内添加的、密码从未更改过的资源。
SELECT
Ptrx_Resource.RESOURCENAME AS "资源名称",
Ptrx_Account.LOGINNAME AS "账户名称",
Ptrx_ResourceSystem.OPERATINGSYSTEM AS "类型",
Ptrx_Resource.LOCATION AS "位置",
Ptrx_Resource.RESOURCEDESC AS "描述"
FROM
(
SELECT
Ptrx_Account.ACCOUNTID AS accountid,
Ptrx_Resource.RESOURCEID
FROM
Ptrx_Account
INNER JOIN Ptrx_Resource
ON Ptrx_Resource.RESOURCEID =
Ptrx_Account.RESOURCEID
WHERE
accountid NOT IN
(
SELECT
Ptrx_UserAudit.ACCOUNTID
FROM
Ptrx_UserAudit
FULL OUTER JOIN
(
SELECT
accountid,
lastaccessedtime,
OPERATION_TYPE
FROM
Ptrx_UserAudit
INNER JOIN Ptrx_AuditConfiguration
ON Ptrx_AuditConfiguration.CONF_ID =
Ptrx_UserAudit.OPERATIONTYPE
WHERE
Ptrx_AuditConfiguration.OPERATION_TYPE
LIKE 'Account Added'
) AS Ptrx_DummyAccAdded
ON Ptrx_UserAudit.ACCOUNTID =
Ptrx_DummyAccAdded.accountid
AND Ptrx_UserAudit.lastaccessedtime %GREATERTHAN%
Ptrx_DummyAccAdded.lastaccessedtime
WHERE
Ptrx_DummyAccAdded.OPERATION_TYPE
LIKE 'Password Changed'
AND Ptrx_UserAudit.lastaccessedtime BETWEEN
Ptrx_DummyAccAdded.lastaccessedtime
AND
(
Ptrx_DummyAccAdded.lastaccessedtime
::timestamp::date
+ INTERVAL '5' day
)
)
) AS Ptrx_DummyPwdNotChan
INNER JOIN Ptrx_Account
ON Ptrx_DummyPwdNotChan.accountid =
Ptrx_Account.ACCOUNTID
INNER JOIN Ptrx_Resource
ON Ptrx_Resource.RESOURCEID =
Ptrx_Account.RESOURCEID
INNER JOIN Ptrx_ResourceSystemMembers
ON Ptrx_ResourceSystemMembers.RESOURCEID =
Ptrx_Resource.RESOURCEID
INNER JOIN Ptrx_ResourceSystem
ON Ptrx_ResourceSystem.OSID =
Ptrx_ResourceSystemMembers.OSID
ORDER BY
Ptrx_Resource.RESOURCENAME;
3. 计划查询报告
您可以对现有查询报告或新建查询报告进行计划,以实现自动生成。具体操作如下:
- 导航至“报表”>>“查询报表”,然后 进入相应的类别。
- 点击需要配置定时任务的报告旁边的“安排报告”图标。

- 在弹出的表单中,设置所需的计划(每日、每月等)并指定开始时间。
- 接下来,选择报告发送给收件人的格式,可选PDF、 Excel 或 两者兼有。
- 从给定的选项中选择需要接收报告的收件人。您也可以提供自定义的电子邮件地址列表。
- 点击“安排”。

若要取消现有计划,请按照以下步骤操作:
- 点击目标报告旁“报告操作”列下的“安排报告”图标。
- 在弹出的表单中,选择“从不”选项,然后点击“计划”。
4. 管理类别
要管理类别,请前往“报告”>>“查询报告”>>“管理类别”。
- 要编辑类别,请点击该类别旁边的“编辑类别”图标。在弹出窗口中修改名称,然后点击“保存”。
- 要删除类别,请点击目标类别旁边的“删除类别”图标,并确认删除。
附加说明
要删除一个类别,必须先确保该类别下没有报告。如果有报告,您可以将其移动到另一个类别。
- 要在类别之间移动报告,请点击目标类别旁边的“移动报告”图标,选择目标类别,然后点击“保存”。