Diğer dersleri https://selimkaratas.com.tr/oracle-11g-r2-egitimi-ders-notlari adresinden bulabilirsiniz.
1. Controlling User Access ( Kullanıcı Erişim Kontrolleri)
GRANT: yetki verilir.
REVOKE: yetki geri alınır.
İki türlü yetki var. System privileges ve Object privileges.
Kullanıcıyı sys tanımlar. En yetkili kullanıcı türüdür. DBA olarak bağlantı kurduktan sonra aşağıdaki şekilde yeni kullanıcı tanımlayabiliriz. (demo1 isimli kullanıcı oluşturdum)
CREATE USER user IDENTIFIED BY password;
Daha sonra new connection yeni kullanıcımız ile bağlantı kuruyoruz.
Kullanıcıyı yarattıktan sonra yetkinliklerini tanımlamamız gerekmektedir.
GRANT create session, create table, create sequence, create view TO demo1; -- grant anahtarı ile yetkileri verdik. -- tablo, sequence, session, view oluşturma yetkilerini verdik.
ALTER USER demo1 IDENTIFIED BY yenisifre; -- şifre değişikliği yapmak için
System privileges: DB’nin tamamına etki eden yetkilerdir. Kullanıcı yaratma, yetki verme gibi.
Object privileges: Table,View,Sequence ve index gibi objelere verilen yetkilerdir. Bir şemanın bir objesi üzerinde yapılır. Mesela HR’ın employees tablosuna select çekebilme yetkisi.
GRANT select ON hr.employees TO demo1; /* demo1 kullanıcısı ise hr employees tablosuna select çekme yetkisi verdik. */
Rol Yaratma: Yaratılan role yetkinlikler atanır daha sonra kullanıcılara bu rol verilir. Yönetimin kolaylaşması için başvurulan yöntemdir.
Kullanıcılara minimum yetkiler verilmelidir. Yapacağı işlemden daha azı ya da daha fazlası verilmemelidir.
CREATE ROLE IT_WORKERS; /*manager adlı bir rol yaratıldı. buna yetkiler verilip daha sonra gerekli managerlere bu yetkiler verilebilir. */
GRANT create table, create view TO IT_WORKERS; -- managerlere tablo ve view yaratma yetkisi verdik
GRANT IT_WORKERS TO BELL, KOCHHAR; --bell ve kochhar kullanıcılarına bu rolü verdik.
[WITH GRANT OPTION]; --ile sahip olduğu yetkileri bir başka kullanıcıya verebilir.
GRANT select, insert ON hr.departments TO demo1 WITH GRANT OPTION; -- hr departments tablosu için sahip olduğumuz select,insert yetkilerini başka kullanıcılara aktarma yetkisi verdik */
GRANT select ON sekaist.departments TO PUBLIC; /* sekaist.departments tablosu herkesin select yapacağı hale getirildi. */
GRANT update (department_name, location_id) ON hr.departments TO demo1, IT_WORKERS; /* demo kullanıcısı ve manager rolüne hr departments tablosuna update yetkisi verdik.*/
REVOKE ( Yetkileri Alma)
REVOKE select, insert ON hr.departments FROM demo1; /* demo1 kullanıcısının hr departments tablosuna select ve insert yapma yetkilerini geri aldık. */