SQL Server'da Bir Kullanıcı ile Oturum Açma Arasındaki Fark


178

Son zamanlarda normalde karışıklık yok SQL Server'ın birçok farklı alanda çalışıyor. Beni şaşırtan bunlardan biri de Girişler ve Kullanıcılar. Çok basit bir konu olmalı gibi görünüyor ...

Her girişin sadece 1 kullanıcısı ve her kullanıcının sadece 1 girişinin olduğu anlaşılıyor.

Bir oturum açma, birden çok tabloyla ilişkilendirilebilir ve böylece bu kullanıcıyı birçok tabloyla ilişkilendirebilir.

Sorum şu: Neden bir giriş ve bir kullanıcı bile var? hemen hemen aynı şeyler gibi görünüyorlar. Farklılıklar nelerdir veya eksik gibi görünen şey nedir?

Yanıtlar:


202

Bir "Giriş" SUNUCU'ya ana girişi verir.

"Kullanıcı", tek bir DATABASE'e giriş girişi verir.

Bir "Giriş" birçok kullanıcıyla ilişkilendirilebilir (veritabanı başına bir tane).

Yukarıdaki nesnelerin her biri kendisine kendi düzeyinde izin verebilir. Her birinin açıklaması için aşağıdaki makalelere bakın


7
Bir fark bulamadığımma şaşmamalı. Sadece 1 veritabanı ile çalışıyordum. Teşekkürler.
corymathews

3
Bu cevap temelde doğrudur, ancak anladığım kadarıyla belirli bir kullanıcıya o sunucuda bulunan birden fazla veritabanına erişim verilebilir. Bu nedenle, kullanıcı oturum açma 1'e 1 eşlemedir, ancak kullanıcıdan veritabanına 1'e çok eşleme olur.
andrew pate

1
@coreymathews: "Boy Meets World" ile daha az zaman ve kitaplarda daha fazla zaman! ).
MSIS

Ancak şimdi MSDN, "Veritabanında kimlik doğrulaması yapan kullanıcılar" (Veritabanınızı daha taşınabilir hale getirmenize yardımcı olması için önerilir) bir kullanıcı türü önerir. Link: docs.microsoft.com/tr-tr/sql/t-sql/statements/… Bu geleneksel kullanıcı türünden daha mı iyi?
Pırıltı

32

Her ikisine de sahip olmanın bir nedeni, kimlik doğrulamasının veritabanı sunucusu tarafından yapılabilmesi, ancak veritabanına yetkilendirmenin kapsamlandırılabilmesidir. Bu şekilde, veritabanınızı başka bir sunucuya taşırsanız, her zaman veritabanı sunucusundaki kullanıcı oturum açma ilişkisini yeniden eşleştirebilirsiniz, ancak veritabanınızın değişmesi gerekmez.


Lütfen biraz açıklayabilir misiniz? Değişikliğin veritabanı yerine veritabanı sunucusunda yapılmasının avantajı nedir?
HeyJude

Bir veritabanını yedeklemek ve geri yüklemek istediğinizi varsayalım. Geri yükleme genellikle yeni bir sunucuda yapılır. Geri yüklemede veritabanında değişiklik yapmak zorunda kalmayabilirsiniz.
Tom Resing

Neden sadece veritabanı geri yüklendikten sonra değişiklik yapmıyor?
HeyJude

1
Daha fazla bilgi için SQLAuthority'de konuyla ilgili 60 saniyelik iyi bir video var blog.sqlauthority.com/2014/07/16/…
Tom

1
@HeyJude Sunucu, Kimlik Doğrulama ile ilgilidir yani oturum açma ve kullanıcı ayırma için değilse veritabanının yapacağı bir şey.
Zaid Khan

25

Laurentiu Cristofor'un bu konuyla ilgili gerçekten iyi bir MSDN blog yazısı olduğunu düşünüyorum :

SQL Server güvenliği hakkında anlaşılması gereken ilk önemli şey, iki güvenlik alanının bulunmasıdır - sunucu ve veritabanı. Sunucu alanı, birden çok veritabanı alanı içerir. Tüm işler bazı veritabanı bağlamında yapılır, ancak işi yapabilmek için önce sunucuya ve sonra veritabanına erişime sahip olmak gerekir.

Sunucuya erişim girişler yoluyla verilir. İki ana oturum açma kategorisi vardır: SQL Server kimlik doğrulaması yapılmış girişler ve Windows kimlik doğrulaması yapılmış girişler. Genellikle bunlara SQL girişlerinin ve Windows girişlerinin daha kısa adlarını kullanarak değineceğim. Windows kimlik doğrulaması yapılmış girişler Windows kullanıcılarına eşlenen girişler veya Windows gruplarına eşlenen girişler olabilir. Bu nedenle, sunucuya bağlanabilmek için, bu tür veya girişlerden biri aracılığıyla erişime sahip olmalıdır - girişler sunucu alanına erişim sağlar.

Ancak girişler yeterli değildir, çünkü işler genellikle bir veritabanında yapılır ve veritabanları ayrı alemlerdir. Veritabanlarına kullanıcılar aracılığıyla erişim izni verilir.

Kullanıcılar girişlerle eşlenir ve eşleme, girişlerin ve kullanıcıların SID özelliği tarafından ifade edilir. SID değerleri aynıysa oturum açma, veritabanındaki bir kullanıcıyla eşleşir. Giriş türüne bağlı olarak, girişler için yukarıdaki kategorileri taklit eden bir kullanıcı kategorisine sahip olabiliriz; SQL kullanıcılarımız ve Windows kullanıcılarımız var ve ikinci kategori Windows kullanıcı oturum açma bilgileriyle eşlenen kullanıcılardan ve Windows grup oturum açma bilgileriyle eşlenen kullanıcılardan oluşur.

Hızlı bir genel bakış için bir adım geri gidelim: Bir oturum açma , sunucuya erişim sağlar ve bir veritabanına daha fazla erişim sağlamak için, oturum açma ile eşlenen bir kullanıcının veritabanında bulunması gerekir.

tam gönderinin bağlantısı budur .


Bu blog gönderisi kaldırıldı :(
Steven Schlansker

23

Kısacası,

Girişler sunucunun erişimine sahip olacaktır.

ve

Kullanıcılar veritabanına erişebilecek.


6

Bence bu cevap çok yararlı bir soru. Sadece iki sentimi MSDN Giriş Sayfasından eklemek için :

Oturum açma, bir güvenlik sorumlusu veya güvenli bir sistem tarafından doğrulanabilen bir varlıktır. Kullanıcıların SQL Server'a bağlanmak için giriş yapması gerekir. Bir Windows anaparasına (etki alanı kullanıcısı veya Windows etki alanı grubu gibi) dayalı bir oturum açma oluşturabilir veya Windows anaparasına (SQL Server oturumu açma gibi) dayalı olmayan bir oturum açma oluşturabilirsiniz.

Not:
SQL Server Kimlik Doğrulaması'nı kullanmak için, Veritabanı Altyapısı karışık mod kimlik doğrulaması kullanmalıdır. Daha fazla bilgi için bkz. Kimlik Doğrulama Modu Seçme.

Güvenlik sorumlusu olarak, oturum açma izinleri verilebilir. Bir girişin kapsamı tüm Veritabanı Altyapısıdır. SQL Server örneğinde belirli bir veritabanına bağlanmak için, oturum açma bir veritabanı kullanıcısıyla eşlenmelidir. Veritabanı içindeki izinler oturum açma yerine veritabanı kullanıcısına verilir ve reddedilir. Tüm SQL Server örneğinin kapsamına sahip izinler (örneğin, ENDPOINT OLUŞTURMA izni) bir oturum açma işlemine verilebilir.


3
Alıntıda >her paragrafın başına bir koyarsanız , alıntı olarak biçimlendirilmiş olması biraz daha açıktır .
Sam

2
Bu çok faydalı oldu. Kullanıcıları doğru şekilde ayarlamış ve oturum açmış olmama rağmen, sistem SQL Server oturum açma kimlik doğrulamasına izin verecek şekilde ayarlanmadı. Sunucu giriş yapmalarına izin vermiyorsa neden SQL Server oturum açma işlemleri oluşturabilirim?
Mark Ireland

Ben de buna şaşırdım. Sunucu şu anda karışık modda değilse, o zaman sunucuya ilk önce Karışık mod kimlik doğrulamasını açmaları gerektiğini belirten bir ipucu verecek bir SQL Auth girişi oluşturmaya çalışırken bir hata atmasını beklerdim.
arunsun

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.