【问题标题】:How are Azure SQL Audit blob file names generated?Azure SQL 审核 blob 文件名是如何生成的?
【发布时间】:2018-05-07 15:13:27
【问题描述】:

我在我的一个数据库上启用了 Azure SQL 审核。我希望能够自动化一个过程,将给定日期的文件内容存储在 SQL 表中。但是,为此,我需要知道要在给定日期处理的 blob 文件的名称。例如,在我的 blob 文件夹中,我看到以下内容:

为了让这个过程自动化,我需要知道那里的文件以及它们的名称。我该怎么做呢?我可能会使用 T-SQL 来处理这些文件。

【问题讨论】:

    标签: azure azure-sql-database azure-storage


    【解决方案1】:

    Blob 文件名格式:CreationTime_FileNumberInSession.xel

    • CreationTime – UTC 时间(hh_mm_ss_ms 格式)
    • FileNumberInSession – 在会话日志跨越多个 Blob 文件的情况下运行索引

    如您所见,文件名是随机的,因为它们基于创建它们的时间。


    审计 blob 文件存储在“sqldbauditlogs”容器内的以下目录层次结构中(“/”分隔符表示目录层次结构):

    ////


    要处理给定日期的所有日志,只需收集相关 ..// 层次结构中的所有 blob。


    谢谢,

    吉拉德 (MSFT)

    【讨论】:

    • 谢谢。 T-SQL 中有没有办法收集给定日期的所有 blob?
    【解决方案2】:

    如果您尝试将审核加载到表中,我会执行以下操作。

    1 - 编写一个 power shell 脚本,获取您要加载的日期下的 blob 存储容器中的审计文件列表。

    2 - 使用sys.fn_get_audit_file 表值函数将文件条目加载并附加到另一个数据库中的累积表中。

    这是您可能使用的示例 TSQL 脚本。

        SELECT *
        FROM sys.fn_get_audit_file 
        ('https://sa-name.blob.core.windows.net/sqldbauditlogs/server-name/database-name/SqlDbAuditing_Audit_NoRetention/2017-11-23/12_01_02_960_0.xel',default,default);
        GO
    

    3 - 使用 Azure 自动化在每日计时器上安排 PowerShell 工作流以执行加载。

    4 - 这是 blob 文件布局上的 white paper

    快乐编码。

    约翰

    狡猾的 Dba

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-29
      • 2013-09-22
      • 1970-01-01
      • 2018-01-13
      • 2021-07-13
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多