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
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.
Database Engineer | Oracle & PostgreSQL & ClickHouse Hello, I am Faruk Çevik. I have professional skills Oracle and other databases. I share my experiences with System, Database Bigdata, DWH Databases on this my site. .
Bir yanıt yazın