
- Sistem yetkileri
- Nesne yetkileri
- Tablolar üzerinde verilebilecek yetkiler
- Roller
- Roller ve yetkiler arasındaki farklar
SİSTEM YETKİLERİ: Birçok sistem yetkisi vardır ve bu yetkilerin bir çoğu DBA (DataBase Administrator)’ lerde bulunmaktadır. Birkaç örnek vermek gerekirse :
- Kullanıcı oluşturmak ve kaldırmak
- Rol oluşturmak
- DB Link oluşturma ve silme
- Dizin oluşturma ve silme
- Job oluşturma ve silme
- vs…..
KULLANICI OLUŞTURMAK :
CREATE USER user_name identified by password;
ÖRNEK: CREATE USER FRKCVK IDENTIFIED BY 123456AbX
KULLANICI İÇİN SİSTEM YETKİLERİ :Kullanıcı oluşturulduktan sonra, istenilen sistem yetkileri DBA tarafından verilir.
GRANT privilege [, privilege …..] TO user [, user | role, PUBLIC …..];
ÖRNEK FRKCVK Kullanıcısına connect ve resource hakkı verelim
grant connect,resource to FRKCVK;
ROL
- Rol, kullanıcılara yada başka rollere verilebilecek bir grup yetki tanımlamasıdır.
- Roller, yetkilerin verilmesi veya geri alınması konularında güvenli ve hızlı bir ortam sağlar.
- Roller genellikle DBA’ler tarafından oluşturulur ve yönetilir.
- Kimin, neye, nasıl erişeceği konularında kurallara uyumun sağlanması ve raporlanmasını kolaylaştırır.
ROL OLUŞTURMA VE YETKİLENDİRME (GRANT)
Developer lar için bir rol oluşturalım
- create role developer_role;
Oluşturulan bu role bazı yetkiler verelim
- grant select any table to developer_role;
- grant update any table,insert any table to developer_role
Son olarak bu Rolü bir kullanıcıya verelim
- grant developer_role to frkcvk;
Artık frkcvk kullanıcısı developer_role rolune verilen ve verilecek tüm hak ve yetkilere sahip olacaktır.
NESNE YETKİLERİ
- Nesne yetkileri nesneye göre değişiklik arz etmektedir.
- Nesnenin sahibi nesne üzerindeki tüm yetkilere sahiptir.
- Nesne sahibi, o nesne için başkalarına yetki verebilir.
SELECT, INSERT, UPDATE, DELETE ……..
SYNTAX : GRANT object_prv [(columns)]
ON object
TO {user | role |public}
[WITH GRANT OPTION];
WITH GRANT OPTION : Alınan yetkiyi bir başkasına da verebilmek için kullanılan option dır.
ÖRNEK :
- grant delete on hr.employees to frkcvk with grant option;
- grant insert,update on hr.jobs to frkcvk with grant option;
YETKİLERİ GERİ ALMA (REVOKE)
Kullanıcılara yada rollere verilen yetkiler REVOKE komutu ile geri alınır.
SYNTAX : REVOKE [privilege, priv … | ALL ]
ON object
FROM {user ,user..| role |public}
[CASCADE CONSTRAINTS];
ÖRNEK :
- revoke delete on hr.employees from frkcvk;
- revoke insert,update on hr.jobs from frkcvk;
YETKİLERİ SORGULAMA
Aşağıdaki View lerden Kullanıcıların yetkilerine dair bilgilere ulaşılabilir.
- ROLE_SYS_PRIVS: Rollere Verilen System Yetkileri
- ROLE_TAB_PRIVS : Rollere Verilen Tablo Yetkileri
- USER_ROLE_PRIVS: Kullanıcıların Erişebildiği Roller
- USER_SYS_PRIVS : Kullanıcılara Verilen Sistem Yetkileri
- USER_TAB_PRIVS_MADE: Kullanıcıların nesnelerine verilen yetkiler.
- USER_TAB_PRIVS_RECD : Kullanıcılara verilen nesne yetkileri.
Comments (1)
Diren SALTIKsays:
Kasım 4, 2020 at 10:03 pmMerhaba hocam;
Grant Select On “TabloAdı” TO “KullanıcıAdı” olarak bir kişiye yada, arada virgül olacak şekilde kullanıcı sicillerini yazarak Select yetkisi verebiliyorum.
Ben başka bir taloda kullanıcıları tuttuğum tabloyu referans vererek sadece bu tablodakilere yetki veremezmiyim.
Şu şekilde yazıyorum olmuyor.
Grant Select On “TabloAdı” TO ( Select “KullanıcıAdı” From “Kullanıcılar”) yada
Grant Select On “TabloAdı” TO IN ( Select “KullanıcıAdı” From “Kullanıcılar”)
olarak yazdım olmadı.
Konu hakkında bilgileriniri rica ederim.