查询报告

PAM360 支持创建基于查询的报告,允许用户通过编写自定义 SQL 查询或修改现有查询,从数据库中提取特定数据。此功能使用户能够从各种表中获取信息,并将其格式化为可操作的报告。例如,您可以针对以下场景创建报告:

  • 识别自自动登录启用后从未更改过的密码
  • 查找自资源创建以来从未更改过的密码
  • 成员完全相同的用户组列表
  • 电子邮件地址完全相同的用户列表

PAM360 提供了按类别组织的预定义查询报告,例如:

  • 已记录的会话
  • 资源组
  • 资源
  • 自助服务权限提升
  • SSH 命令控制
  • 用户组
  • 用户
  • 零信任

每个类别包含多个查询报告,用户可以添加新报告或创建自定义类别。要创建新的自定义查询报告类别,请导航至“报告”>>“查询报告”>>“管理类别”,然后点击“添加类别”。在弹出的窗口中,输入类别名称并点击“保存”

本文将引导您了解以下主题:

  1. 创建查询报告
  2. 查询报告示例场景
  3. 安排查询报告
  4. 管理类别

1. 创建查询报告

您可以通过两种方式生成基于查询的报告:

  1. 使用预定义类别(如资源组、资源、用户组和用户)中的默认查询报告。
  2. 利用产品界面中提供的表结构编写自己的 SQL 查询,从而创建自定义报告。

在创建新查询报告时,您可以直接使用默认报告,或编辑查询并将其保存为新报告。或者,若要使用您自己的 SQL 查询从头开始创建新查询,请按照以下步骤操作:

  1. 导航至报告 >> 查询报告 ,并点击右上角的“创建查询报告”。
    query-reports1
  2. 在弹出的界面中,输入“报告名称”和“报告描述”以便于识别。
    query-reports2
  3. 从预定义列表中选择一个报告类别,或点击“添加新类别”创建新类别。
  4. 根据数据的敏感程度,将报告的“隐私”设置为“所有人”“仅限本人”。
  5. 编写 SQL 查询语句以提取所需数据。您可以参考界面左上角的“表结构”来了解数据库结构。
    query-reports3
  6. 编写完查询后,点击“生成报告”或“保存”以备将来使用。

自定义查询的 SQL 占位符

编写自定义 SQL 查询时,可使用以下占位符:

  • `decrypt(COLUMNNAME)`:用于解密加密的列。解密时应提供别名。

    附加说明

    加密列可通过SCHAR数据类型识别,该类型在“表结构”中可见。

    query-reports4
  • 请使用 `%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. 计划查询报告

您可以对现有查询报告或新建查询报告进行计划,以实现自动生成。具体操作如下:

  1. 导航至“报表”>>“查询报表”,然后 进入相应的类别。
  2. 点击需要配置定时任务的报告旁边的“安排报告”图标。
    query-reports6
  3. 在弹出的表单中,设置所需的计划(每日、每月等)并指定开始时间。
  4. 接下来,选择报告发送给收件人的格式,可选PDF Excel 或 两者兼有
  5. 从给定的选项中选择需要接收报告的收件人。您也可以提供自定义的电子邮件地址列表。
  6. 点击“安排”。
    query-reports7

若要取消现有计划,请按照以下步骤操作:

  1. 点击目标报告旁“报告操作”列下的“安排报告”图标。
  2. 在弹出的表单中,选择“从不”选项,然后点击“计划”

4. 管理类别

要管理类别,请前往“报告”>>“查询报告”>>“管理类别”。
query-reports1

  1. 要编辑类别,请点击该类别旁边的“编辑类别”图标。在弹出窗口中修改名称,然后点击“保存”
  2. 要删除类别,请点击目标类别旁边的“删除类别”图标,并确认删除。

    附加说明

    要删除一个类别,必须先确保该类别下没有报告。如果有报告,您可以将其移动到另一个类别。

  3. 要在类别之间移动报告,请点击目标类别旁边的“移动报告”图标,选择目标类别,然后点击“保存”




Top