Azure sql database Azure SQL数据库sys.fn\u get\u audit\u文件或sys.fn\u xe\u文件\u target\u read\u文件故障

Azure sql database Azure SQL数据库sys.fn\u get\u audit\u文件或sys.fn\u xe\u文件\u target\u read\u文件故障,azure-sql-database,azure-sql-server,Azure Sql Database,Azure Sql Server,我在试图读取DB审核日志的Azure SQL数据库上遇到问题 这两个过程sys.fn\u get\u audit\u file或sys.fn\u xe\u file\u target\u read\u file都应该能够读取文件 但无论我做什么,我都会得到空白表。但是,即使我指定了一个不存在的文件,我也会收到一个记录为零的表,而不是一个错误 所以,恐怕是别的原因 我的登录名在db_owner组中 有什么建议吗?我发现我只能通过使用为其创建的相同服务器和相同数据库上下文来读取XEL文件。例如,考虑

我在试图读取DB审核日志的Azure SQL数据库上遇到问题

这两个过程sys.fn\u get\u audit\u file或sys.fn\u xe\u file\u target\u read\u file都应该能够读取文件

但无论我做什么,我都会得到空白表。但是,即使我指定了一个不存在的文件,我也会收到一个记录为零的表,而不是一个错误

所以,恐怕是别的原因

我的登录名在db_owner组中


有什么建议吗?

我发现我只能通过使用为其创建的相同服务器和相同数据库上下文来读取XEL文件。例如,考虑下面的场景:

  • ServerA是我从中创建审计XEL文件的Azure Synapse实例,所有这些都与DatabaseA相关
  • ServerB是一个普通的SQL实例,我想在它上面读取XEL文件
测试1: 使用ServerB,尝试直接从blob存储读取文件

结果:返回0行,没有错误消息

测试2: 使用ServerB,在本地下载XEL文件,并尝试从本地副本读取

结果:返回0行,没有错误消息

测试3: 使用ServerA,在当前数据库为“master”的情况下,尝试直接从blob存储中读取文件

结果:返回0行,没有错误消息

测试4: 使用ServerA,在当前数据库为'DatabaseA'的情况下,尝试直接从blob存储中读取文件

结果:效果很好


因为我真的想从ServerB读取文件,所以我还尝试在那里创建一个能够读写我的blob存储帐户的凭据。不幸的是,这并没有造成任何区别-重复测试1得到了与之前相同的结果。

我发现我只能通过使用创建XEL文件的相同服务器和相同数据库上下文来读取XEL文件。例如,考虑下面的场景:

  • ServerA是我从中创建审计XEL文件的Azure Synapse实例,所有这些都与DatabaseA相关
  • ServerB是一个普通的SQL实例,我想在它上面读取XEL文件
测试1: 使用ServerB,尝试直接从blob存储读取文件

结果:返回0行,没有错误消息

测试2: 使用ServerB,在本地下载XEL文件,并尝试从本地副本读取

结果:返回0行,没有错误消息

测试3: 使用ServerA,在当前数据库为“master”的情况下,尝试直接从blob存储中读取文件

结果:返回0行,没有错误消息

测试4: 使用ServerA,在当前数据库为'DatabaseA'的情况下,尝试直接从blob存储中读取文件

结果:效果很好


因为我真的想从ServerB读取文件,所以我还尝试在那里创建一个能够读写我的blob存储帐户的凭据。不幸的是,这没有造成任何区别-重复测试1得到了与之前相同的结果。

您是否启用了对Azure SQL数据库的审核:?是的,我启用了,我在Blob上有文件,但是从服务器上,我无法用这些函数读取它们。奇怪的是,这个函数不需要额外的身份验证就可以读取blob。请检查是否可以通过Azure Porta读取审核记录(->审核->查看审核日志):这是我做的第一件事,是的,有记录。我发现文件的大小也在增加。您是否启用了Azure SQL数据库的审核:?是的,我启用了,Blob上有文件,但是从服务器上,我无法用这些函数读取它们。奇怪的是,这个函数不需要额外的身份验证就可以读取blob。请检查是否可以通过Azure Porta读取审核记录(->审核->查看审核日志):这是我做的第一件事,是的,有记录。我看到文件的大小也在增加。