Yandex Metrica
SQL Server Schema Kullanımı - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SQL Server Schema Kullanımı

10.12.2025 yasinsunmaz 143 0

Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ölçekli projelerde veritabanı nesnelerini düzenli, güvenli ve yönetilebilir hale getirir. Hem mantıksal bir gruplanma sağlar hem de yetkilendirme konusunda önemli avantajlar sunar.

Schema Nedir?

Schema, veritabanı içindeki nesnelerin (tablolar, view’lar, prosedürle, sequence vb.) mantıksal olarak gruplanmasını sağlayan yapılardır.

Basitçe anlatmak gerekirse:

  • dbo SQL Server’ın varsayılan şemasıdır.

  • Yeni bir şema oluşturduğunuzda tablolarınız pro.ProductOrder gibi iki parçalı isim alır.

  • Proje, modül, güvenlik veya departman bazlı ayrımlar için idealdir.

Schema Kullanmanın Faydaları

Daha düzenli bir veritabanı

Tabloları modüllere ayırırsın:

  • sales.Order

  • inventory.Product

  • log.AuditTrail

Güvenlik kolaylığı

Schema bazında yetki verebilir veya kısıtlayabilirsin:

  • Bir kullanıcı sadece sales şemasını görebilir.

  • log şemasına DELETE engellenebilir.

İsim çakışmalarını engeller

Aynı tablo adı farklı şemalarda olabilir:

  • hr.Employee

  • finance.Employee

Modüler yapı sağlar

Büyük ERP, Mikroservis, DDD projelerinde kullanmak şarttır.

Schema Oluşturma

CREATE SCHEMA pro;

Şema İçine Tablo Oluşturma

CREATE TABLE pro.ProductOrder (
    ID INT PRIMARY KEY,
    ProductName NVARCHAR(100),
    Quantity INT
);

Bir Tabloyu Başka Bir Şemaya Taşımak

ALTER SCHEMA pro TRANSFER OBJECT::dbo.Persons;

Bu işlemden sonra tablo pro.Persons olarak kullanılmaya devam eder. Bu işlem sırasında tabloya erişim kesilmez, fakat şemanın değişmesi bazı permission (izin) ilişkilerini etkileyebilir. Yetki yapınızı kontrol etmeyi unutmayın.

Schema Silme

Bir schema sadece boşsa silinebilir.

Schema kontrolü yap:

SELECT * FROM sys.objects WHERE schema_id = SCHEMA_ID('pro');

Schema sil:

DROP SCHEMA pro;

Schema Owner Değiştirme

ALTER AUTHORIZATION ON SCHEMA::pro TO yasinsunmaz;

Schema Bazında Yetki Verme

Örnek SQL kullanıcımız: yasinsunmaz

Tüm tablolara SELECT izni:

GRANT SELECT ON SCHEMA::sales TO yasinsunmaz;

INSERT/UPDATE/DELETE izni:

GRANT INSERT, UPDATE, DELETE ON SCHEMA::sales TO yasinsunmaz;

Tüm yetkiler:

GRANT CONTROL ON SCHEMA::sales TO yasinsunmaz;

Yetki kaldırma:

REVOKE SELECT ON SCHEMA::sales FROM yasinsunmaz;
DENY UPDATE ON SCHEMA::sales TO yasinsunmaz;

Kullanıcıya Varsayılan Schema Atama

ALTER USER yasinsunmaz WITH DEFAULT_SCHEMA = sales;

Bu işlem sonrası SQL artık şöyle çalışır:

SELECT * FROM sales.Customer;

Bir Schema'daki Tüm Nesneleri Listeleme

SELECT 
    s.name AS SchemaName,
    o.name AS ObjectName,
    o.type_desc
FROM sys.objects o
JOIN sys.schemas s ON o.schema_id = s.schema_id
ORDER BY s.name, o.type_desc;

Kısaca schema yapısı veritabanı organizasyonunun vazgeçilmez parçalarından biridir.

Umarım faydalı olmuştur. İyi çalışmalar!

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SQL Server'da SELECT INTO ve INSERT INTO SELECT Kullanımı

31.05.2025 yasinsunmaz 480 0

Bu yazımda, SQL Server'da oldukça sık kullanılan ve günlük veri işlemlerinde hayat kurtaran iki komutu inceleyeceğiz: SELECT INTO ve INSERT INTO SELECT. Bu ...

SQL Server'da LAG() ve LEAD() Kullanımı

23.05.2025 yasinsunmaz 501 0

Bu yazımda SQL Server'da oldukça faydalı olan LAG() ve LEAD() fonksiyonlarını inceleyeceğiz. Bu fonksiyonlar, bir satırdaki veriye bakarken, o satırın öncesindeki v...

SQL Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 1392 0

SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...

SQL'e Dair Her Şey OneSQL'de, Ne Ararsanız Bulabileceksiniz

03.06.2023 yasinsunmaz 645 0

Veri tabanı yöneticilerinin yanında zaman zaman yazılımcıların da SQL'i aktif olarak kullanması gerekebiliyor. SQL'i belli başlı şekillder kullanıp işlemlerimizi ...