> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL Server

> Kullanıcı davranışına dayalı otomatik Journey'leri ve kişiselleştirilmiş mesajlaşma kampanyalarını tetiklemek için Microsoft SQL Server'dan OneSignal'e özel etkinlikleri senkronize edin.

export const PLATFORM_0 = "SQL Server"

export const DATA_TYPE_0 = "event data"

export const COLUMN_HEADER_0 = "SQL Server Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON string"

## Genel Bakış

OneSignal + SQL Server entegrasyonu, kullanıcı davranışına dayalı otomatik mesajlaşma kampanyalarını ve Journey'leri tetiklemek için Microsoft SQL Server veritabanınızdan OneSignal'e özel etkinliklerin senkronize edilmesini sağlar.

SQL Server, kurumsal uygulamalar ve veri ambarlama için tasarlanmış Microsoft'un ilişkisel veritabanı yönetim sistemidir.

***

## Gereksinimler

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### SQL Server

* Ağ erişimine sahip **SQL Server örneği**
* Uygun izinlere sahip **Veritabanı kullanıcısı**
* Yapılandırılmış davranışsal veriler içeren **Etkinlik tabloları**
* OneSignal'den SQL Server örneğinize **Ağ bağlantısı**

***

## Kurulum

<Steps>
  <Step title="OneSignal için özel kullanıcı oluşturun">
    Güçlü, benzersiz bir şifre ile özel bir kullanıcı hesabı oluşturun:

    ```sql theme={null}
    -- Create census user with the ability to sign in with a password
    CREATE USER CENSUS WITH PASSWORD = '<strong-unique-password>';

    -- Give the census user the ability to connect to database
    GRANT CONNECT TO CENSUS;
    ```

    <Info>
      Tüm SQL Server komutları, betiği çalıştırırken belirtilen veritabanı içinde çalışacaktır.
    </Info>
  </Step>

  <Step title="Okuma izinlerini verin">
    Etkinlik verilerinize salt okunur erişim sağlayın:

    ```sql theme={null}
    -- Give the census user the ability to read tables within the database
    EXEC sp_addrolemember 'db_datareader', CENSUS;

    -- Grant census user ability to read data from within a schema
    -- Run this for each schema you intend OneSignal to access
    GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
    ```

    <Info>
      `<your-schema>`'yı etkinlik verilerini içeren gerçek şema adınızla değiştirin. OneSignal'in erişmesini istediğiniz her şema için bu komutu tekrarlayın.
    </Info>
  </Step>

  <Step title="Advanced Sync Engine'i Yapılandırın (İsteğe Bağlı)">
    Gelişmiş performans için, OneSignal'in senkronizasyon durumu için bir kayıt tutma şeması oluşturun:

    ```sql theme={null}
    -- Create a private bookkeeping schema where Census can store sync state
    CREATE SCHEMA CENSUS AUTHORIZATION CENSUS;

    -- Give the census user full access to the bookkeeping schema
    GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
              UPDATE, VIEW DEFINITION ON SCHEMA::CENSUS TO CENSUS;

    -- Give the census user the ability to create tables within the database
    GRANT CREATE TABLE TO CENSUS;
    ```

    <Warning>
      Basic Sync Engine veya salt okunur mod kullanıyorsanız bu adımı atlayın.
    </Warning>
  </Step>

  <Step title="OneSignal'e bağlanın">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

    **SQL Server**'ı seçin ve aşağıdaki bağlantı ayrıntılarını sağlayın:

    * **Host:** SQL Server örneği hostname'iniz veya IP adresiniz
    * **Port:** 1433 (varsayılan) veya özel portunuz
    * **Database:** Veritabanı adınız
    * **Username:** `CENSUS`
    * **Password:** 1. Adımdan şifre
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

### Örnek Etkinlik Tablo Şeması

```sql theme={null}
-- Example SQL Server event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
    event_name NVARCHAR(100) NOT NULL,
    user_id NVARCHAR(255) NOT NULL,
    event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
    event_data NVARCHAR(MAX),
    session_id NVARCHAR(255),
    device_type NVARCHAR(50)
);
```

### SQL Sorgu Modu

Etkinlik verilerinizi dönüştürmek için özel SQL sorguları yazın:

```sql theme={null}
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
    AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;
```

***

## Gelişmiş Ağ Yapılandırması

OneSignal, bölge kısıtlamaları, IP adresi izin listeleri veya SSH Tünelleme dahil olmak üzere gelişmiş ağ kontrolleri kullanan SQL Server örneklerine başarıyla bağlanabilir.

Ağ erişimini yapılandırma hakkında daha fazla bilgi için SQL Server yöneticinize veya OneSignal desteğine başvurun.

***

## Sync Engine Seçenekleri

### Basic Sync Engine

* Etkinlik verilerinize salt okunur erişim
* OneSignal altyapısı tarafından yönetilen durum takibi
* Minimal izinlerle daha basit kurulum

### Advanced Sync Engine

* Yerel durum takibi ile gelişmiş performans
* Tablo oluşturmak için ek izinler gerektirir
* Yüksek hacimli etkinlik işleme için önerilir

***

## Sınırlamalar

* Karmaşık sorgular, yoğun trafik dönemlerinde veritabanı performansını etkileyebilir
* JSON işlemleri optimal performans için SQL Server 2016 veya üstünü gerektirir
* Tüm izinler, kurulum sırasında belirtilen veritabanı düzeyinde verilir

***

## SSS

### Birden fazla SQL Server şemasına bağlanabilir miyim?

Evet, etkinlik verilerini içeren her şema için `GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema>` ifadesini çalıştırarak CENSUS kullanıcısına birden fazla şemaya erişim verebilirsiniz.

### Hangi SQL Server sürümleri desteklenmektedir?

OneSignal modern SQL Server sürümlerini destekler. Etkinlik sorgularında JSON işlemleri için SQL Server 2016 veya üstü önerilir.

### Advanced Sync Engine kullanmam gerekir mi?

Hayır, Basic Sync Engine çoğu kullanım senaryosu için iyi çalışır. Gelişmiş performansa ihtiyacınız varsa ve OneSignal'in SQL Server örneğinizde tablo oluşturmasına izin verebiliyorsanız Advanced Sync Engine'i kullanın.
