Press ESC to close

ORACLE KULLANICI VE ROL YETKİLERİ

Oracle veritabanı yönetiminde kullanıcı ve rol yetkilendirmesi, güvenliği sağlamak ve erişim kontrolünü yönetmek için kritik bir konudur. Bu yazıda Oracle’da kullanıcı oluşturma, rollerin yönetimi ve yetkilendirme süreçleri ele alınacaktır. Yetkiler konusunu ele alırsak aşağıdaki gibi bölümlere ayırabiliriz

  • Sistem yetkileri
  • Nesne yetkileri
  • Tablolar üzerinde verilebilecek yetkiler
  • Roller
  • Roller ve yetkiler arasındaki farklar
yetkiler
 

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";

Bir kullanıcı oluşturulduktan sonra Database tarafında bu kullanıcının herhangi bir anlamı yok şu an çünkü hiç bir yetkisi yok , Database üzernde herhangi bir işlem yapabilmesi için yetkileri olması gerekmekte, Bir yetkinin verilmesi GRANT.. TO ile verğilir yetki REVOKE .. FROM ifadesi ile DBA tarafından alınır ve verilir. 

Kullanıcıya Yetki Verilmesi ;

GRANT privilege [, privilege …..]  TO user [, user | role, PUBLIC …..];

örnek olarak FRKCVK user ına connect ve resource yetkilerini 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.
Örnek olarak Developer lar için bir rol oluşturalım
create role developer_role;

Bu Role bazı yetkileri 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 devuser;

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.

Bir kullanıcının sahip olduğu yetkileri görmek için aşağıdaki sorgular kullanılabili

 
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'ORNEK_KULLANICI';

Bir kullanıcının sahip olduğu roller:

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ORNEK_KULLANICI';

Bir rolün içerdiği yetkileri görmek için:

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'RAPOR_KULLANICISI';

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir