MSSQL Server’da, sertifika kullanarak bir login oluşturmak, SQL Server’da bir güvenlik kimlik doğrulaması sağlamak için sertifikayı ve ilgili kimlik doğrulamasını kullanmanızı sağlar. Bu, genellikle daha güvenli bir bağlantı sağlamak veya belirli bir sertifikayla kimlik doğrulaması yaparak login oluşturmak amacıyla kullanılır.
Windows authentication ve sql server authentication ile login oluşturma haricinde herhangi bir sertifikayla eşleşen login ile oturum açılabilir.
Credential ile bir köprü görevi görürüz. Credential, SQL Server’daki login’lerin dış kaynaklara erişmesine izin vermek için kullanılır. Credential, dış kaynağa erişim için kullanılan kimlik bilgilerini içerir.
Credential’lar, SQL Server’da Security bölümünde Credentials altında bulunur.

SQL Server’da bir credential oluşturmak için öncelikle bir login’e ihtiyacınız vardır. Credential, bir login tarafından kullanılmak üzere oluşturulur.
Bir login oluşturuyorum

Credential, genellikle SQL Server’ın dış kaynaklara erişmesine izin vermek için kullanılırken, Login doğrudan SQL Server’a giriş yapmayı sağlar.


USE [master]
GO
CREATE CREDENTIAL [credential23] WITH IDENTITY = N'credential', SECRET = N'1'
GO
Oluşturulan sertifika veritabanı güvenliğini sağlamak için oluşturulur. Daha sonra oluşturulmuş olan login’e gelinir ekleme işleme yapılır

Kullanıcı giriş yaptığında ekstra güvenlik önlemidir.
Özetle, login SQL Server’a erişimi sağlar, credential ise dış kaynaklara erişim için kullanılan kimlik bilgilerini depolar ve yönetir. Sql server ve azure kaynakları gibi Azure makalelerini okursanız bu yapının ne olduğunu daha iyi anlarsınız.
Sql server azure veri kaynaklarına azure’da sql server erişim için bu kimlik bilgisini kullanır.
Aşağıdaki komutlar ile bir loginin belirtilen credential altında oluşturmayı ayrıca loginin veritabanı altında oluşturacağımız user’ıda login ile credential yapısına bağlayabiliriz.
USE [master]
GO
CREATE LOGIN [credential3] WITH PASSWORD=N'1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
ALTER LOGIN [credential3] ADD CREDENTIAL [credential23]
GO
USE [DB10]
GO
CREATE USER [credential3_user] FOR LOGIN [credential3]
GO
Sertifika ve Login’in Çalışma Prensibi:
- Sertifika ile oluşturduğunuz login, genellikle istemci tarafından gönderilen dijital sertifikayı kullanarak kimlik doğrulaması yapar.
- Bu, özellikle güvenli bağlantılar kurmak ve üçüncü taraflarla (örneğin, bir web uygulaması veya başka bir sistem) güvenli bir şekilde veri alışverişi yapmak için kullanılır.
- Sertifikalar, kimlik doğrulaması için genellikle public key şifrelemesi ile çalışır ve private key yalnızca güvenli bir şekilde erişilebilir.
Sertifika ile Login Kullanmanın Avantajları:
- Güvenlik: Sertifikalar, güvenli bağlantılar sağlar ve kimlik doğrulamasını daha güvenli hale getirir.
- Şifre Gereksizliği: Kullanıcı adı ve şifre yerine sertifikaların kullanılması, şifre tabanlı saldırılara karşı daha güvenli bir alternatif sunar.
- Veri Bütünlüğü: Sertifikalar, veri iletimi sırasında veri bütünlüğünü sağlar ve iletilen verilerin değiştirilmediğinden emin olmanızı sağlar.
1. Login: “Dışarıdan İçeriye”
Bir kullanıcının SQL Server örneğine (Instance) adım atabilmesi için gereken anahtardır.
- Amacı: Kullanıcıyı doğrulamak.
- Kapsamı: Sunucu düzeyindedir.
- Bağlantı Türü: Windows Authentication veya SQL Server Authentication olabilir.
- Özet: “Ben kimim ve bu sunucuya girmeye yetkim var mı?” sorusuna yanıt verir.
2. Credential: “İçeriden Dışarıya”
SQL Server’ın kendi sınırları dışındaki bir kaynağa (Network share, Azure Storage, başka bir server vb.) erişirken kullandığı “kimlik kartı”dır.
- Amacı: SQL Server servisinin veya bir kullanıcının, işletim sistemi düzeyindeki bir kaynağa SQL Server dışı bir kimlikle bağlanmasını sağlamak.
- Kapsamı: Genelde Proxy Accounts (SQL Agent tarafında) veya Linked Server yapılandırmalarında kullanılır.
- Özet: “Sunucu benim adıma dışarıdaki şu kaynağa hangi yetkiyle bağlansın?” sorusuna yanıt verir.
Linked Server Örneği Üzerinden Farklar
Linked Server kurarken bu ikisi şu şekilde etkileşime girer:
| Özellik | Login (Giriş) | Credential / Mapping (Çıkış) |
| Yön | Kullanıcı -> SQL Server A | SQL Server A -> SQL Server B |
| Fonksiyon | Sunucuya erişim sağlar. | Uzak sunucuda yetki almayı sağlar. |
| Bağlantı | CREATE LOGIN [Ali]… | EXEC sp_addlinkedsrvlogin… |
Başka bir makalede görüşmek dileğiyle..
“Sûra üflendiği zaman; İşte o gün zorlu bir gündür; İnkârcılar için hiç de kolay olmayan bir gündür.”Müddessir-8-9-10
