Bildirim

Duet AI'ın adı Google Workspace için Gemini olarak değişti. Daha fazla bilgi

BigQuery'de raporlama günlükleri için örnek sorgular

Bu özelliğin desteklendiği sürümler: Frontline Standard; Enterprise Standard ve Enterprise Plus; Education Standard ve Education Plus; Enterprise Essentials Plus.  Sürümünüzü karşılaştırın

Bu makale, BigQuery'den alabileceğiniz genel raporlar için örnek sorgular içerir. Bu sorgu örneklerinde, eski SQL'in bulunduğu varsayılır. api_project_name.dataset_name ifadesini kendi proje adınız ve veri kümesi adınızla değiştirin.

BigQuery verilerini sorgulama hakkında daha fazla bilgi edinin.

Gmail günlük alanları ve anlamları için BigQuery'deki Gmail etkinlik günlükleri şeması başlıklı makaleye bakın.

Örnek sorgular

Hesaplar

Yönetici hesapları ile yetki verilen hesapların sayısı ve devre dışı bırakılan, kilitlenen ve tarihe göre askıya alınan hesapların sayısı

SELECT date,
accounts.num_locked_users,
accounts.num_disabled_accounts,
accounts.num_delegated_admins,
accounts.num_super_admins,
accounts.num_suspended_users,
accounts.num_users
FROM api_project_name.dataset_name.usage
WHERE accounts.num_users IS NOT NULL
ORDER BY date ASC;

Yöneticiler

Bir yönetici tarafından en sık yapılan işlemler

SELECT count(*) as admin_actions, event_name
FROM api_project_name.dataset_name.activity
WHERE email IN (
  SELECT user_email
  FROM api_project_name.dataset_name.usage
  WHERE accounts.is_super_admin = TRUE
)
GROUP BY 2
ORDER BY 1 DESC;

Belirli bir alandaki süper yöneticilerin sayısını bulma

SELECT COUNT(DISTINCT user_email) as number_of_super_admins, date
FROM api_project_name.dataset_name.usage
WHERE accounts.is_super_admin = TRUE
GROUP BY 2
ORDER BY 2 DESC;

Takvim

Yalnızca standart SQL

Google Takvim'de günlük etkin kullanıcı sayısının, 30 gün boyunca etkin olan kullanıcı sayısına oranı. Bu örnekte, birden çok tablo sorgulanır.

Günlük etkin kullanıcı sayısı

SELECT date, calendar.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_1day_active_users IS NOT NULL
ORDER BY date DESC

Son 30 gün içinde etkin olan kullanıcı sayısı

SELECT date, calendar.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_30day_active_users IS NOT NULL
ORDER BY date DESC;

Türe göre takvim etkinliklerinin sayısı

SELECT COUNT(DISTINCT calendar.calendar_id) AS count, event_name
FROM api_project_name.dataset_name.activity
WHERE calendar.calendar_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;

Drive

Paylaşılan Google Drive öğelerinin, paylaşım yöntemine göre gruplandırılmış halde sayısı

SELECT COUNT(DISTINCT drive.doc_id) AS count, drive.visibility
FROM api_project_name.dataset_name.activity
WHERE drive.doc_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;

Dosya kimliği, başlık, sahip ve tür. Belirli bir zaman aralığında harici olarak paylaşılan dosyaların sayısı.

SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_id, drive.doc_title,
drive.owner, drive.doc_type
FROM api_project_name.dataset_name.activity
WHERE drive.visibility = "shared_externally"
ORDER BY 1 DESC
LIMIT 100;

Paylaşım izni değişiklikleri ve sonuçları. Dosya görünürlüğündeki değişikliğe hangi izin değişikliklerinin neden olduğunu anlamanızı sağlar.

SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_title,
drive.visibility_change,drive.old_visibility, drive.visibility,
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.old_visibility IS NOT NULL
AND drive.old_visibility != "unknown";

Dosya türüne göre gruplandırılmış etkinlik türleri. Dosya türüne göre benimseme raporu için kullanışlıdır.

SELECT drive.doc_type, event_type, count(*) 
FROM  api_project_name.dataset_name.activity
WHERE record_type = "DRIVE"
GROUP by 1,2 ORDER BY 3 desc;

Her ortak Drive için etkinlik türü ve adı

SELECT drive.shared_drive_id, event_type, event_name, record_type,
count(distinct drive.doc_id) AS count
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.shared_drive_id IS NOT NULL
GROUP BY 1,2,3,4 ORDER BY 5 DESC;

Alanınız dışından kullanıcılarla ilgili bilgiler

SELECT email, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE email != ""
AND email NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;

Harici kullanıcılar için hangi izin değişikliklerinin ne zaman yapıldığı

SELECT drive.target_user, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE drive.target_user IS NOT NULL
AND drive.target_user NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;

Depolama alanı izlemeyle ilgili bilgiler

Belirlenmiş bir eşikle (AND accounts.drive_used_quota_in_mb > 0 ibaresiyle tanımlanır) X üzerinde Drive depolama alanı kullanan kullanıcılar hakkında rapor oluşturmak için kullanışlıdır.

Bu sorgu, planlanmış bir sorgu olarak tanımlanabilir ya da periyodik olarak çağrılabilir (örneğin API kullanılarak).

SELECT date,
user_email,
accounts.drive_used_quota_in_mb,
FROM api_project_name.dataset_name.usage
WHERE accounts.drive_used_quota_in_mb IS NOT NULL
AND accounts.drive_used_quota_in_mb > 0
AND user_email != ""
AND date = CAST(DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AS STRING)
ORDER BY 3,1 DESC;

Notlar:

  • Bu değer, müşterinin ayarladığı filtreyle eşleşecek şekilde değiştirilebilir. Örneğin, 15 GB'tan fazla: AND accounts.drive_used_quota_in_mb > 15000
  • CAST(DATE_SUB(CURRENT_DATE(), INTERVAL x DAY) AS STRING) ile tarih karşılaştırması, tarih değerindeki mevcut biçimle tarih karşılaştırması yapılmasına olanak tanır.
  • Bu sorgu, benzer bir değer bulabileceğimiz Gmail için de geçerlidir: accounts.gmail_used_quota_in_mb

Gmail

BigQuery ile Gmail için en iyi uygulamalar

  • Yalnızca ihtiyacınız olan verileri sorgulayın. Buradaki örneklerde 1.000 eşleşme sınırı vardır, ancak kendi sınırınızı belirlemeniz de mümkündür.
  • Sorgularınız için bir zaman dilimi ayarlayın. Genel olarak bir günlük zaman dilimi kullanılır.

Konu eşleşmesi
Belirli bir konuyla eşleşen 1.000'e kadar kaydın ileti özeti görünümü

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity
WHERE gmail.message_info.subject LIKE "%test%"
LIMIT 1000

Alıcı eşleşmesi
Belirtilen bir alıcı için farklı iletilerin sayısı

SELECT COUNT(DISTINCT gmail.message_info.rfc2822_message_id)
FROM your_dataset_id.activity d
WHERE
  EXISTS(
   SELECT 1 FROM d.gmail.message_info.destination WHERE destination.address = "recipient@example.com")

Elden çıkarma işlemi ve alıcı eşleşmesi

Aşağıdaki sorguların ikisiyle de eşleşen 1.000'e kadar kayıt için ileti özeti görünümü:

  • Belirtilen elden çıkarma işlemi (Değiştir, Reddet, Karantinaya al)
  • Belirtilen alıcı

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
     destination.address = "recipient@example.com" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
          WHERE consequence.action = 17)
LIMIT 1000

Kural açıklaması tetiklendi
Belirtilen kural açıklaması tetiklenen 1.000'e kadar kayıt için ileti özeti görünümü

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
    EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
       WHERE consequence.reason LIKE '%description%')
LIMIT 1000

Spam olarak işaretlendi
1.000'e kadar kayıt için ileti özeti görünümü: 

  • Spam olarak işaretlendi
  • Belirtilen alıcı için
  • Tüm nedenler için

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.is_spam AND
          destination.address = "recipient@example.com"
LIMIT 1000

Şifreleme protokolü (şifrelenmemiş)
Şifreleme protokolüne göre ileti özeti görünümü (şifrelenmemiş)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,       
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 0
LIMIT 1000

Şifreleme protokolü (yalnızca TLS)
Şifreleme protokolüne göre ileti özeti görünümü (yalnızca TLS)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 1
LIMIT 1000

İleti kimliği eşleşmesi
Belirli bir ileti kimliği için ileti ayrıntıları görünümü (mesaj kimliğini "<>" içine alın)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.event_info.success,
     gmail.event_info.elapsed_time_usec,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     gmail.message_info.source.service as source_service,
     gmail.message_info.source.selector as source_selector,
     destination.address as destination,
     destination.service,
     destination.selector as destination_selector,
     gmail.message_info.rfc2822_message_id,
     gmail.message_info.payload_size,
     gmail.message_info.num_message_attachments,
     gmail.message_info.connection_info.smtp_tls_state,
     gmail.message_info.description
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = ""
LIMIT 1000

Elden çıkarma: İletiyi reddet
İletiyi reddet:

  • Hangi kural nedeniyle reddetme kararı verildi?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG(consequence.reason)
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
        WHERE consequence.action = 17)
LIMIT 1000

Elden çıkarma: İletiyi değiştir
İletiyi değiştir: 

  • Hangi kural nedeniyle değişiklik yapıldı?
  • Hangi değiştirme alt kategorisi (ör. üstbilgi veya konu) kullanılıyor?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG((consequence.action, consequence.reason))
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
   EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
       WHERE consequence.action NOT IN (0, 17, 3))
LIMIT 1000

İletiyi karantinaya al
Hangi kural nedeniyle ileti karantinaya alındı?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG(consequence.reason)
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
        WHERE consequence.action = 3)
LIMIT 1000

Bileşik sorgular
Son 30 gün içinde belirli bir kural tarafından ("kural açıklaması" adlı kural) yakalanan tüm iletilerin sayısı:

SELECT
  COUNT(gmail.message_info.rfc2822_message_id) AS message_cnt
FROM
  `your_dataset_id.activity`,
UNNEST (gmail.message_info.triggered_rule_info) AS triggered_rule
WHERE
  _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  AND triggered_rule.rule_name LIKE "rule description"

Son günde TLS şifrelemesi olmadan alınan tüm iletileri listeler:

SELECT gmail.message_info.subject,
    gmail.message_info.rfc2822_message_id
FROM `your_dataset_id.activity`
WHERE
    _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) AND
    gmail.message_info.connection_info.smtp_tls_state = 0

Son 30 gün içinde hesabımın en çok posta alışverişi yaptığı 10 alanı listeler:

SELECT
  COUNT(DISTINCT gmail.message_info.rfc2822_message_id) as message_cnt,
  IF(gmail.message_info.is_policy_check_for_sender, 
       REGEXP_EXTRACT(gmail.message_info.source.address , "(@.*)"),
       REGEXP_EXTRACT(destination.address , "(@.*)")) AS domain
FROM `your_dataset_id.activity` d, d.gmail.message_info.destination
WHERE 
    _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY domain
ORDER BY message_cnt desc
LIMIT 10

Gmail'de günlük etkin kullanıcı sayısının, 30 gün boyunca etkin olan kullanıcı sayısına oranı

Günlük etkin kullanıcı sayısı:

SELECT date,
gmail.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_1day_active_users > 0
ORDER BY 1 DESC;

Son 7 gün içinde etkin kullanıcı sayısı:

SELECT date,
gmail.num_7day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_7day_active_users > 0
ORDER BY 1 DESC;

Son 30 gün içinde etkin olan kullanıcı sayısı:

SELECT date,
gmail.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_30day_active_users > 0
ORDER BY 1 DESC;

Gruplar

Google Grubu üyelik değişiklikleri ve kullanıcı davranışı

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND CONCAT(TIMESTAMP_MICROS(time_usec)) LIKE "%YYYY-MM-DD%"
ORDER BY 1 DESC
LIMIT
  1000

YYYY-AA-GG zaman damgası kullanmak istiyorsanız ilk SELECT ifadesi şununla değiştirilebilir:
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,

Tarihler, WHERE ibaresinde aşağıdaki yöntemlerden biriyle filtrelenebilir:

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) > "2020-06-30"
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) < "2020-08-31"
ORDER BY 1 DESC
LIMIT
  1000

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-21")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-23")
ORDER BY 1 DESC
LIMIT
  1000

Google Meet

Tarihe göre görüntülü görüşme sayısı ve toplam görüşme dakikası

SELECT date, meet.num_calls, meet.total_call_minutes
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_calls IS NOT NULL
ORDER BY date ASC

Günlük etkin kullanıcı sayısı

SELECT date, meet.num_1day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_1day_active_users IS NOT NULL
ORDER BY date DESC

Son 30 gün içinde etkin olan kullanıcı sayısı

SELECT date, meet.num_30day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_30day_active_users IS NOT NULL
ORDER BY date DESC

Kurallar

Ada, eşleşen uygulamaya ve işlemlere göre tetiklenen Veri Kaybını Önleme kurallarının sayısı

SELECT TIMESTAMP_MICROS(time_usec) AS date, rules.rule_name, rules.application,
rules.resource_title, rules.actions, rules.resource_owner_email,
rules.data_source, rules.matched_trigger
FROM api_project_name.dataset_name.activity
WHERE rules.rule_name IS NOT NULL
ORDER BY 1 DESC LIMIT 1000;

Jetonlar

Bir üçüncü taraf uygulamasının Google Drive'a erişmesine kaç kez izin verildiği

SELECT token.client_id, scope, token.app_name, count(*) AS count
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(token.scope) AS scope
WHERE scope LIKE "%drive%"
GROUP BY 1,2,3 ORDER BY 4 DESC;

Yönetici konsolunda oturum açma girişimleri

Google Yönetici konsolunda başarısız oturum açma işlemleriyle ilgili ayrıntılı bilgi

SELECT TIMESTAMP_MICROS(time_usec) AS date, email, ip_address,
event_name, login.login_type, login.login_failure_type
FROM api_project_name.dataset_name.activity
WHERE login.login_type IS NOT NULL
AND login.login_failure_type IS NOT NULL
AND event_type = "login"
ORDER BY date DESC;

Kullanım tabloları şeması

Şema değişebilir. Parametre ve alanların güncel, tam listesini Reports API dokümanlarında bulabilirsiniz. 

Tarihe göre filtreleme

Etkinlik veya kullanım tablolarını sorgularken tarihe göre filtreleme yapabilirsiniz. Her iki yöntem de tarihi sunarken farklı biçimler kullanır:

  • Etkinlik tablosunda zaman damgaları Unix mikrosaniye cinsinden depolanır. Bu, TIMESTAMP_MICROS() işleviyle tarihe dönüştürülebilen bir tam sayı değeridir (rakamdır).
  • Kullanım tablosunda tarih değerleri tarih biçiminde olduğundan böyle bir dönüştürmeye gerek yoktur.

Her iki tabloda da, aşağıdaki yöntemlerden birini kullanarak belirli bir tarihe (veya tarih aralığına) göre filtreleme yapmayı tercih edebilirsiniz.

Etkinlik tablosu

Unix Micros (etkinlik tablosu) yapısıyla belirli bir tarihe göre filtrelemek için WHERE ibaresini ve TIMESTAMP() işlevini tanımlayarak büyüktür (>) ve küçüktür (<) operatörleriyle basit bir karşılaştırma yapabilirsiniz:

SELECT TIMESTAMP_MICROS(time_usec) as date, record_type
FROM api_project_name.dataset_name.activity
WHERE TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-01")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-07")
ORDER BY 1 DESC LIMIT 1000

Buradaki amaç, girilen time_usec değerine sınır getirmektir. Bunun için TIMESTAMP_MICROS() işlevinden döndürülen değer, dize türü parametresi olarak eklenen bir tarihle birlikte TIMESTAMP() işlevinden döndürülen değerle karşılaştırılır. Bu kod, Timestamp functions in Standard SQL (Standart SQL'deki zaman damgası İşlevleri) sayfasında anlatılan standartlara uygundur ve hem basit karşılaştırma operatörleri olan (>) ve (<) işaretlerini hem de WHERE ibaresinin AND uzantısını kullanarak belli bir zaman aralığının sınırlarını belirler.

Kullanım tablosu

SELECT date, meet.num_calls,
FROM api_project_name.dataset_name.usage
WHERE meet.num_calls IS NOT NULL
AND TIMESTAMP(date) > TIMESTAMP("2020-07-01")
AND TIMESTAMP(date) < TIMESTAMP("2020-07-07")
ORDER BY date DESC;

Tabloda mevcut olan tarih dize türü değerini TIMESTAMP() işlevine sunabilir ve (>) ile (<) karşılaştırma operatörlerini ilk örnektekiyle aynı şekilde kullanabiliriz.

 

Alan takma adlarına ve alt alan adlarına göre filtreleme: Hariç tutma ve dahil etme

Belirli alan adlarını sorgu sonuçlarınıza dahil etmek veya hariç tutmak için, alan adını filtrelemek üzere joker karakter (%) kullanarak WHERE ibaresinde e-posta adresi için bir filtre uygulayın.

AND veya OR ifadesini kullanma biçiminiz, belirli sonuçları filtreleme (hariç tutma) veya dahil etme yönündeki tercihinize bağlı olarak farklılık gösterir.

Belirli alanları sonuçlardan hariç tutma

WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")

Sonuçlara yalnızca belirli alanları dahil etme

WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")

Kural denetleme günlükleri

Kullanıcıların hassas verileri paylaşma girişimlerini izlemek için bu sorguyu kullanın

SELECT TIMESTAMP_MICROS(time_usec) AS Date,
rules.resource_owner_email AS User,
rules.rule_name AS ruleName,
rules.rule_type AS ruleType,
rules.rule_resource_name AS ruleResourceName,
rules.resource_id AS resourceId,
rules.resource_title AS resourceTitle,
rules.resource_type AS resourceType,
rules.resource_owner_email AS resourceOwner,
CAST(recipients AS STRING) AS Recipients,
rules.data_source AS dataSource,
rules.actor_ip_address AS actorIpAddress,
rules.severity AS severity,
rules.scan_type AS scanType,
rules.matched_trigger AS matchedTriggers,
detect.display_name AS matchedDetectorsName,
detect.detector_id AS matchedDetectorsId,
detect.detector_type AS matchedDetectorsType,
triggers.action_type AS triggeredActions,
suppressors.action_type AS suppressedActions,
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(rules.resource_recipients) as recipients
LEFT JOIN UNNEST(rules.matched_detectors) as detect
LEFT JOIN UNNEST(rules.triggered_actions) as triggers
LEFT JOIN UNNEST(rules.suppressed_actions) as suppressors
WHERE rules.rule_name IS NOT NULL
AND triggers.action_type != "ALERT"
ORDER BY 1 DESC
LIMIT 1000;

İlgili konu

Bu size yardımcı oldu mu?

Bunu nasıl iyileştirebiliriz?
Arama
Aramayı temizle
Aramayı kapat
Ana menü
2228920746247180590
true
Yardım Merkezinde Arayın
true
true
true
true
true
73010
false
false