code: func logStmt(node ast.StmtNode, vars *variable.SessionVars) {
  	switch stmt := node.(type) {
  	case *ast.CreateUserStmt, *ast.DropUserStmt, *ast.AlterUserStmt, *ast.SetPwdStmt, *ast.GrantStmt,
  		*ast.RevokeStmt, *ast.AlterTableStmt, *ast.CreateDatabaseStmt, *ast.CreateIndexStmt, *ast.CreateTableStmt,
  		*ast.DropDatabaseStmt, *ast.DropIndexStmt, *ast.DropTableStmt, *ast.RenameTableStmt, *ast.TruncateTableStmt:
  		user := vars.User
  		schemaVersion := vars.TxnCtx.SchemaVersion
  		if ss, ok := node.(ast.SensitiveStmtNode); ok {
  			logutil.Logger(context.Background()).Info("CRUCIAL OPERATION",
  				zap.Uint64("conn", vars.ConnectionID),
  				zap.Int64("schemaVersion", schemaVersion),
  				zap.String("secure text", ss.SecureText()),
  				zap.Stringer("user", user))
  		} else {
  			logutil.Logger(context.Background()).Info("CRUCIAL OPERATION",
  				zap.Uint64("conn", vars.ConnectionID),
  				zap.Int64("schemaVersion", schemaVersion),
  				zap.String("cur_db", vars.CurrentDB),
  				zap.String("sql", stmt.Text()),
  				zap.Stringer("user", user))
  		}
  	default:
  		logQuery(node.Text(), vars)
  	}
  }
docs: // logStmt logs some crucial SQL including: CREATE USER/GRANT PRIVILEGE/CHANGE PASSWORD/DDL etc and normal SQL
  // if variable.ProcessGeneralLog is set.