İzinler

Eyl 08, 2013

İzin Çeşitleri:

3 tip izin vardır:   

  • Statement (Durum) İzinleri: Veritabanında nesnelerin yaratılmasını sağlayan izinlerdir. Bu izinler sayesinde kullanıcıların Transact-SQL komutlarını sınırlı bir şekilde kullanmaları sağlanır.
  • Object (Nesne) İzinleri: Tablo ya da view gibi nesnelerde bilginin değiştirilmesi, seçilmesi, eklenmesi, çıkarılması vb. işlemlerin yapılması; sütunlarda seçme,güncelleme gibi işlemlerin yapılması ve saklı yordamların çalıştırılması ile ilgili izinlerdir.
  • Predefined (Ön tanımlı) İzinler: Sabit rolde olan bir kişinin özel hakları vardır; örneğin sysadmin rolünde ise istediği herhangi bir işlem yapabilir (Ayrıca nesne sahibi olan kişi de o nesne ile ilgili istediği işlemi yapma hakkına sahiptir).
     
Statement Description
GRANT erişme hakkı var
DENY erişme hakkı engellenmiş,ait olduğu grubunun çalışma hakları üstün değil
REVOKE erişme hakkı geri alınmış, ama ait olduğu grubunun hakları daha üstün

Veritabanında bir kullanıcının bilgiye erişme izninin verilmesi için ya "Enterprise Manager" kullanılır ya da "Query Analyzer"da GRANT kullanılmalıdır.

Örnek: GRANT SELECT , INSERT 
               ON TABLE1 
                 TO dilek

denirse, o an çalışılan veritabanında dilek'e TABLE1'da SELECT  ve INSERT hakkı verilmiş olur.

Örnek: GRANT CREATE VIEW , CREATE TABLE
                    TO dilek

denirse, dilek'e veritabanında  CREATE VIEW ve CREATE TABLE hakları verilmiş olur.
Veritabanında bir kullanıcının bilgiye erişme izninin engellenmesi  için ya "Enterprise Manager" kullanılır ya da "Query Analyzer" 'da DENY kullanılmalıdır.

Örnek: DENY SELECT , INSERT 
                    ON TABLE1 
                    TO dilek

denirse, dilek'in veritabanında TABLE1 tablosunda SELECT ve INSERT haklarını kullanmasını engellenmiş olunur. Eğer dilek'in de içinde bulunduğu bir grup varsa ve o gruba aynı tablo için SELECT ve INSERT hakları tanınmışsa yine de dilek'in TABLE1 üzerinde SELECT ve INSERT izni olmaz.

Örnek: DENY CREATE VIEW , CREATE TABLE
                     TO dilek

denirse , dilek'in  veritabanında CREATE VIEW  ve CREATE TABLE izni engellenmiş olur.  dilek'in içinde bulunduğu gruba CREATE VIEW  ve CREATE TABLE hakları verilse bile dilek'in bu hakları kullanma izni olmayacaktır.
Veritabanında bir kullanıcının bilgiye erişme izninin kaldırılması  için ya Enterprise Manager kullanılır ya da Query Analyzer'da REVOKE kullanılmalıdır.

Örnek: REVOKE SELECT , INSERT 
                    ON TABLE1 
                    FROM dilek

denirse,  dilek'in veritabanında TABLE1 tablosunda SELECT ve INSERT izni iptal edilmiş olur. dilek'in de içinde bulunduğu bir grup varsa ve o gruba aynı tablo için SELECT ve INSERT haklarını tanımışsak; dilek'in TABLE1 üzerinde SELECT ve INSERT izni vardır ve işlem yapabilir.

Örnek: REVOKE CREATE VIEW , CREATE TABLE
                      FROM dilek

denirse , dilek'in  veritabanında CREATE VIEW  ve CREATE TABLE izni kaldırılmış olur. dilek'in içinde bulunduğu gruba CREATE VIEW  ve CREATE TABLE hakları verilirse dilek'in CREATE VIEW  ve CREATE TABLE izni olacaktır; işlem yapabilir.

İzin Onayları :

SQL Server, veritabanı güvenliğini yürütmek için izinleri kullanır. SQL Server, Transact-SQL ifadelerinin, görünümleri ve saklı yordamların kullanılması için yetki verir. İzinler herbir kullanıcının durumuna bağlı olarak belirlenir (sa, dbo, database object owner olarak). Bunlar iki tiptir: Nesne izinleri, tümce izinleri.

Her bir veritabanı içinde belirli hareketleri sınırlamak için kullanıcı hesaplarına ve rollerine izinler verilebilir. Bir kullanıcı başarılı bir şekilde bağlandıktan sonra SQL Server komutları kabul eder. İzinler onaylanırken, SQL Server aşağıdaki adımları takip eder:

  1. Kullanıcı Transact-SQL ifadelerini çalıştırdığında veya bir menü seçeneği seçme işlemleri yerine getirdiği zaman, Transact-SQL ifadeleri SQL Server'a gönderilir.
  2. SQL Server, Transact-SQL ifadesini aldığında kullanıcının ifadeyi çalıştırma izninin olup olmadığını kontrol eder.
  3. SQL Server aşağıdaki iki hareketi yerine getirir:
  4. Kullanıcının izni yoksa, SQL Server bir hata mesajı gönderir.
  5. Kullanıcının izni varsa, SQL Server isteneni yerine getirir.