Kullanıcı Hakları (Grant,Revoke,Role)

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Kullanıcı Hakları (Grant,Revoke,Role)

Mesaj gönderen Fatih! »

Kullanıcı tanımladıktan sonra mutlaka o kullanıcıya haklarını da vermelisiniz. Aksi taktirde oluşturduğunuz kullanıcıyla login olsanız bile kayıtlar üzerinde hiçbir işlem yapamazsınız.
Kullanıcıya hak vermek için Grant verilen hakkı geri almak için Revoke deyimlerini kullanıyoruz.

Kullanıcıya Verebileceğiniz Haklar
Insert > Kayıt Ekleme Hakkı
Update > Kayıtları Güncelleme Hakkı
Delete > Kayıtları Silme Hakkı
Select > Kayıtları Seçme Hakkı
Execute > Stored Procedureleri Çalıştırma Hakkı
References > Primary/Foreign Key gibi Özelliklere Bakabilme Hakkı.
All > Yukarıdaki Hakların Tümünü Tek Seferde Vermenizi Sağlar

DelphiDunyasi adında bir kullanıcı oluşturduğunuzu Varsayıyorum.
Grant Bir Kullanıcı yada Role belirli haklar verebilmenizi sağlar
Procedureyi çalıştırabilme hakkı vermek için

Kod: Tümünü seç

GRANT EXECUTE ON PROCEDURE BenimSP to DelphiDunyasi;

Kod: Tümünü seç

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON BenimTablo TO DelphiDunyasi;

Kod: Tümünü seç

GRANT ALL ON BenimTablo TO DelphiDunyasi;
Bir kullanıcıya hem yetki vermek hemde kendisine verilen yetkileri başkasına da verebilme yetkisi verebilmek istersek cümlenin sonuna

Kod: Tümünü seç

WITH GRANT OPTION
cümlesini eklememiz lazım. kullanıcı başka bir kullanıcıya sadece sahip olduğu hakları verebilir.

Kod: Tümünü seç

GRANT Select ON BenimTablo TO DelphiDunyasi WITH GRANT OPTION;
Burada DelphiDunyasi kullanıcısı başka bir kullanıcıya sadece BenimTablo tablosu üzerinde select hakkı verebilir.

Revoke Grant ile verdiğiniz hakları geri alır. Grant yerine Revoke To Yerine From deyimlerini kullanmalısınız.

DelphiDunyasi kullanıcısından tüm hakları almak için

Kod: Tümünü seç

REVOKE ALL ON BenimTablo FROM DelphiDunyasi;

Kod: Tümünü seç

Revoke insert on BenimTablo from DelphiDunyasi;
WITH GRANT OPTION yetkisini kullanıcıdan almak için

Kod: Tümünü seç

REVOKE GRANT OPTION FOR INSERT ON BenimTablo FROM DelphiDunyasi;
ROLE

Role ye yukarıdaki yetkileri verebilir. Role’ye verilen yetkileride oluşturacağınız kullanıcıya verebilirsiniz.
10 kullanıcı oluşturup bu kullanıcılara bütün tablolar üzerinde tek tek seçme yetkisi vermek baya uzun bir işlem olacaktır. Bunun yerine tablolarda seçme yetkisini Role’ye atayarak oluşturacağınız her kullanıcıya bu role’yi atamanız yeterli.
kullanıcıya Role atamadan önce Rola oluşturmamız gerekiyor.
Role oluşturmak için

Kod: Tümünü seç

create role RoleAdi; 
Role silmek için

Kod: Tümünü seç

Drop role RoleAdi; 
Örneğin

Kod: Tümünü seç

create role BenimRole; 
komutuyla bir role oluşturduk. Şimdi bu role’yi tıpkı kullanıcıları yetkilendirdiğimiz gibi yetkilendirelim.

Kod: Tümünü seç

 grant all on BenimTablo to BenimRole;
şimdi oluşturmuş olduğumuz Role Tabloma erişip Tüm işlemleri yapacak yetkiye sahip. Yeni bir kullanıcı oluşturduğumuzda bu roleyi kullanıcıya atamamız kullanıcıların kayıtlara müdahale edebilmesi için yeterli olacaktır. Aşağıdaki şekilde kullanıcılara role’yi atıyoruz.

Kod: Tümünü seç

grant BenimRole to DelphiDunyasi;

Kod: Tümünü seç

grant BenimRole to DelphiDunyasi2;
Bu komutları Query vb. bileşenlerle çalıştırabilirsiniz. Ben IBScript bileşenini tercih ediyorum.
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

IB Expert Kullanıcı Tanımlama
Resim

Yukarıdaki Pencereye Tools > User Manager Menü Seçeneği İle Ulaşabilirsiniz.

Users Bölümünden Kullanıcı Tanımlayabilir, Silebilir, Kullanıcı adı (SYSDBA kullanıcı adını değiştiremezsiniz) ve şifreyi Değiştirebilirsiniz.

Database Bölümü yapacağınız Değişikliğin Hangi Veritabanı üzerinde Geçerli olacağını belirtmenizi Sağlar.

Role Tabındada Aynı şekilde Roleleri Yönetebilirsiniz.

Add > Ekle

Edit > Düzenle

Delete > Sil.

Add buttonuna bastığınızda Name kısmına Kullanıcı adınızı Password kısmına şifrenizi Confirm Password kısmına şifrenizi tekrar girin.

Bu Bölümdeki ayarlar sadece sizin Bilgisayarınızda geçerli olacağı için Bu işi Delphi içinden Yapmanızı Tavsiye ediyorum.
ArGeMaNiA
Üye
Mesajlar: 2
Kayıt: 30 Nis 2009 09:27

Re: Kullanıcı Hakları (Grant,Revoke,Role)

Mesaj gönderen ArGeMaNiA »

Merhaba,
grant all on ile bütün talblolara izin vermek için tek tek tablo isimlerini
yazmaktan başka daha şık bir yöntem var mı?
Cevapla