SQL Server veritabanı rolleri ve şema arasındaki fark nedir?


cevap 1:

Şema, tabloları, tabloları, işlevleri ve depolanan yordamları mantıksal olarak bir arada paketlemenizi sağlar. Veritabanı için ad alanları gibi düşünün.

Roller, kullanıcılar veya etki alanı grupları için birleştirilebilecek güvenlik kısıtlarını tanımlamanızı sağlar.

Biri mantık / veri ile, diğeri güvenlikle ilgilidir.


cevap 2:

Veritabanı rolleri ve SQL Server'daki şema arasındaki fark, diğer bazı ilişkisel veritabanlarından farklı olmak zorunda değildir, bu nedenle cevabımın genel noktaları SQL Server dışındaki diğer DBMS'ler için geçerli olabilir.

SQL Server şeması, tablolar, saklı yordamlar vb. Gibi nesnelerin kapsayıcısıdır. Bu arada, Veritabanı Rolü bir grup kullanıcıya belirli bir izin kümesi verir.

SQL Server Şemaları

Bir veritabanı, her biri tablolar, dizinler, saklı yordamlar, işlevler vb. Gibi farklı türde nesneler barındıracak birkaç şema içerebilir. Şema, şemanın sahibi olarak bilinen ve veritabanı nesneleri.

SQL Server, yerleşik veritabanı kullanıcıları ve rolleriyle aynı adlara sahip önceden tanımlanmış bazı şemalar içerir, örneğin: dbo, guest, sys ve BİLGİ_SCHEMA.

Yeni oluşturulan bir veritabanı için varsayılan şema, dbo kullanıcı hesabına ait olan dbo'dur. Varsayılan olarak, CREATE USER komutuyla yeni bir kullanıcı oluşturduğunuzda, kullanıcı dbo'yu varsayılan şeması olarak alır.

İşte DB istemcim olan SQL Server 2016 için Bulut Bağlantısı gösteren SQL Server Navicat'ın bir ekran görüntüsü. Bağlantı, AdventureWorks veritabanını arayüzler. Önceden tanımlanmış dbo ve konuk şemalarının yanı sıra İnsan Kaynakları, Kişi, Üretim ve Satışları görebilirsiniz. Her şema sırayla Tablolar, Görünümler, İşlevler, Sorgular ve Raporlar içerir.

Navicat'ı kullanmamın nedenlerinden biri, birlikte çalışmam gereken herhangi bir veritabanı nesnesini bulmayı kolaylaştırıyor.

Veritabanı Rolleri

Veritabanı (veya kullanıcı) rollerini, benzer işlevdeki kullanıcıları birlikte gruplamak için uygun bir yol olarak düşünebilirsiniz. Örneğin, "BT" rolüne sahip olabilir ve tüm BT kullanıcılarını bu role ekleyebilirsiniz. Rollere veritabanında belirli izinler verilir. Bunlar, kullanıcılarınıza ayrıntılı erişim sağlamanıza olanak tanır.

Örneklemek gerekirse, Navicat'ta oluşturduğum bazı kullanıcı rolleri şunlardır:

Bir role verebileceğiniz tüm izinlerin listesi:

Navicat'ta yapmanız gereken tek şey, Rolde vermek istediğiniz her İznin yanındaki kutuyu işaretlemektir. Basit!

Saygılarımla!

Adem