审计日志不为云生成 DML 语句日志-SQL
Audit Log not generating DML statement logs for Cloud-SQL
我正在尝试在堆栈驱动程序控制台中显示 Cloud-SQL 的审计日志。我已经在 IAM 中为 Cloud-SQL 启用了审计日志。
我连接到 Cloud-SQL 中的 mysql 或 postgres 数据库,当我连接这些审计时日志显示在控制台中。
request: {
@type: "type.googleapis.com/google.cloud.sql.v1beta4.SqlInstancesGetRequest"
instance: "testpostgres"
但在此之后,如果我在该特定数据库中执行任何操作,如 SELECT 或 INSERT 或 DELETE,没有为 mysql 和 postgres 生成审计日志(数据访问)。在 mysql 实例中,我设置了以下数据库标志:
audit_log ON (this is in beta version)
对于 mysql 如果我再添加 1 个标志 **general_log**
我可以得到那些 DML 语句但是它们在不同的日志下 **cloudsql.googleapis.com%2Fmysql-general.log**
并且不属于 audit-logs
与 postgres 类似,这些语句位于不同的日志中:
**cloudsql.googleapis.com%2Fpostgres.log**
我是这个 Cloud-SQL 的新手,所以不知道那里实施的日志记录。为什么在对该 Cloud-SQL 实例中的特定数据库执行任何 DML 时没有生成审计日志,我是否应该为此目的设置任何其他标志?
默认情况下,DML 不会记录在 Cloud SQL 的审核日志中。要在 Logging 中查看 DML 日志,您需要使用 pgAudit on your PostgreSQL。顺便说一下,pgAudit 仅在 PostgreSQL 实例中可用。
启用 pgaudit 的步骤:
使用 gcloud 命令启用 pgaudit
gcloud sql instances patch [INSTANCE_NAME] --database-flags \ cloudsql.enable_pgaudit=on,pgaudit.log=all
在您的 postgres 数据库中创建 pgaudit 扩展
CREATE EXTENSION pgaudit;
运行 在你的 postgres 数据库上的一个简单的 select 语句
在Logging中查询DML语句日志:
打开日志记录 -> 日志资源管理器
在查询构建器中应用此过滤器:
resource.type="cloudsql_database" logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
我用了quickstart for PostgresSQL来测试。
查询 postgre 数据库:
使用上面的过滤器过滤日志记录:
我正在尝试在堆栈驱动程序控制台中显示 Cloud-SQL 的审计日志。我已经在 IAM 中为 Cloud-SQL 启用了审计日志。
我连接到 Cloud-SQL 中的 mysql 或 postgres 数据库,当我连接这些审计时日志显示在控制台中。
request: {
@type: "type.googleapis.com/google.cloud.sql.v1beta4.SqlInstancesGetRequest"
instance: "testpostgres"
但在此之后,如果我在该特定数据库中执行任何操作,如 SELECT 或 INSERT 或 DELETE,没有为 mysql 和 postgres 生成审计日志(数据访问)。在 mysql 实例中,我设置了以下数据库标志:
audit_log ON (this is in beta version)
对于 mysql 如果我再添加 1 个标志 **general_log**
我可以得到那些 DML 语句但是它们在不同的日志下 **cloudsql.googleapis.com%2Fmysql-general.log**
并且不属于 audit-logs
与 postgres 类似,这些语句位于不同的日志中:
**cloudsql.googleapis.com%2Fpostgres.log**
我是这个 Cloud-SQL 的新手,所以不知道那里实施的日志记录。为什么在对该 Cloud-SQL 实例中的特定数据库执行任何 DML 时没有生成审计日志,我是否应该为此目的设置任何其他标志?
默认情况下,DML 不会记录在 Cloud SQL 的审核日志中。要在 Logging 中查看 DML 日志,您需要使用 pgAudit on your PostgreSQL。顺便说一下,pgAudit 仅在 PostgreSQL 实例中可用。
启用 pgaudit 的步骤:
使用 gcloud 命令启用 pgaudit
gcloud sql instances patch [INSTANCE_NAME] --database-flags \ cloudsql.enable_pgaudit=on,pgaudit.log=all
在您的 postgres 数据库中创建 pgaudit 扩展
CREATE EXTENSION pgaudit;
运行 在你的 postgres 数据库上的一个简单的 select 语句
在Logging中查询DML语句日志:
打开日志记录 -> 日志资源管理器
在查询构建器中应用此过滤器:
resource.type="cloudsql_database" logName="projects/<your-project-name>/logs/cloudaudit.googleapis.com%2Fdata_access" protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
我用了quickstart for PostgresSQL来测试。
查询 postgre 数据库:
使用上面的过滤器过滤日志记录: