Kategoriler
ORACLE

Oracle Database 11g – SQL Temelleri II || Controlling User Access

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.

new connection

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.

Object Privileges

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. */

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir