Ana içeriğe geç
Kesit SQL
İleri · T-SQL (SQL Server)

SQL Server güvenliği: login, user, rol, şema ve yetkiler

Kimlik doğrulama ve yetkilendirme katmanları, GRANT / DENY / REVOKE.

Uygulamada aç, 8 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

İki kapı: sunucu ve veritabanı

KavramDüzeyAçıklama
LoginSunucu (instance)Sunucuya bağlanma kimliği. Windows (Active Directory) veya SQL Server kimlik doğrulaması.
UserVeritabanıLogin'in bir veritabanındaki karşılığı. Login olmadan (contained database) da olabilir.
RolSunucu veya veritabanıYetkileri gruplar. Kullanıcıya tek tek değil, role yetki verilir.
Şema (schema)VeritabanıNesnelerin klasörü (dbo, sales, hr). Yetki sınırı olarak kullanılır.
-- 1. Sunucu düzeyinde login
CREATE LOGIN rapor_login WITH PASSWORD = N'Guclu!Parola#2025';

-- 2. Veritabanında kullanıcı
USE anadolu;
CREATE USER rapor_user FOR LOGIN rapor_login;

-- 3. Rol oluştur, yetkiyi role ver, kullanıcıyı role ekle
CREATE ROLE raporcular;
GRANT SELECT ON SCHEMA::sales TO raporcular;
ALTER ROLE raporcular ADD MEMBER rapor_user;

Hazır roller

RolYetki
sysadmin (sunucu)Her şey. Çok az kişide olmalı.
db_ownerVeritabanında her şey
db_datareader / db_datawriterTüm tabloları okuma / yazma
db_ddladminNesne oluşturma ve değiştirme

GRANT, DENY, REVOKE

GRANT EXECUTE ON dbo.usp_SiparisOzet TO raporcular;  -- tabloya değil, prosedüre izin
DENY SELECT ON dbo.employees (salary) TO raporcular;  -- tek sütunu gizle
REVOKE SELECT ON SCHEMA::sales FROM raporcular;
En az yetki ilkesiUygulamalara tablolara doğrudan erişim yerine yalnızca saklı yordamlara EXECUTE izni vermek hem güvenliği hem de değişiklik yönetimini kolaylaştırır (ownership chaining sayesinde prosedür, tabloya kullanıcının doğrudan yetkisi olmadan erişir).

Satır ve veri düzeyinde koruma

Alıştırmalara geç (8)