8.Administering User Security ( Kullanıcı Güvenliği Yönetimi)
Veritabanında şema kavramı: user = schema
Bizim veritabanımızda yönetici accountları var. (sys, SYSTEM en yetkili iki kullanıcıdır) Account olarak ASM kısmında da her şeyin sahini SYS’dir.
Rol olarak database tarafında en yetkili kullanıcı SYSDBA;
ASM tarafında ise SYSASM’dir.
SYS kullanıcısı normal bir user değildir, normal bir user işlemleri ile uğraşmaz. Mesela tablo yaratmaz, drop table yapmaz. tablespace yaratır. Performansı monitör eder. Yönetici kullanıcıdır yönlendirme işlemlerini yapar.
SYSTEM yönetici de dba rolüne sahiptir. Çoğu yetkiye sahiptir ama SYS gibi database’i kapatma ya da açma yetkisine sahip değildir.
SYSMAN ve DBSNMP bunlar Enterprise Manager kullanıcılarıdır. Monitör yapar, yönetimi sağlayan kullanıcılardır. Enterprise manager yoksa bu kullanıcılarda yoktur.
Server > Security – Users kısmından ulaşırız.
show sql dediğimizde şunu görürüz:
CREATE USER "SEKAİST" PROFILE "DEFAULT" IDENTIFIED BY "*******" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "SEKAİST"
Oluşturulan kullanıcılar ile detaylara bu menüden ulaşabiliriz. Benzer kullanıcı oluştur, kullanıcıyı lockla gibi özellikler vardır.
Privileges(Yetkiler)
System privileges — veritabanının tamamında etkili yetkilerdir. ( create session vb)
Object privileges — veritabanın’da bir objenin özelliği gibi yetkilerdir (insert,select, vb)
Bu yetkilere kullanıcıyı seçtikten sonra edit diyerek ulaşabiliriz.
ADMIN OPTION ile Kullanıcılara Obje Yetkileri Verme ve Yetkileri Alma
Grant ile yetki verilir revoke ile yetki alınır.
Admin yetkilerinde zincirleme etki yoktur. Tek tek verilip, tek tek alınır.
GRANT OPTION ile Kullanıcılara Obje Yetkileri Verme ve Yetkileri Alma
Object yetkilerinde zincirleme etki vardır. İlk verilen kişiden o yetki alındığında yetki diğerlerinden de alınır.
Rollere Yetki Atama ve Kullanıcılara Rol Atama
Rol Kavramı: Kullanıcılara verilen yetkilerin daha rahat yönetebilmek için yönetimin admin tarafından daha kolaylaştırılması için geliştirilen bir kavramdır. Bu noktada veritabanında Jenny, David , Rachel kullanıcılarından Jenny müdür diğer iki kullanıcı ise çalışandır. İki çalışan bir tane sistem yetkisi(create ), iki tane obje yetkisine sahiptir(select, update) rolü
CREATE ROLE HR_CLERK; -- birinci rol yaratıldı. GRANT CREATE JOB to HR_CLERK; -- create sistem yetkisini verdik. GRANT SELECT, UPDATE on hr.employees to HR_CLERK; -- hr.employees tablosunda select ve update yetkilere role verildi GRANT HR_CLERK TO David, Rachel -- rolü kullanıcılara verdik.
ile yaratılır. Bunun avantajı rolün içinde yapılan değişiklikler hemen kullanıcılara yansır. Tek tek kullanıcılar ile uğraşılmaz.
Çalışanın görüp müdürün göremediği yetki fazla yaşanan bir durum değildir. Statü olarak daha yukarıda olduğu için daha fazla yetkisi olmalıdır.
CREATE ROLE HR_MGR; -- rolü yarattık. GRANT DELETE,INSERT on hr.employees to HR_MGR; --hr.employees tablosu için yetkiler verildi. GRANT HR_CLERK TO HR_MRG; --hr_clerk'in sahip olduğu yetkiler verildi. GRANT HR_MGR to JENNY; --hr_mgr rolü Jenny'ye verildi.
set role mgr1 -- daha sonradan rol tahsis edilirse session kapanmadan alınması için
Create Role
Server > Roles Ekranı aşağıdaki gibidir.
Aşağıdaki ekrandan role ait detayları ayarlayabiliriz.
Önemli: CREATE ANY TABLE
— içinde any geçen yetkilerde herhangi bir kullancıınn tablosunda istediğin tabloyu yarat gibi işlemler yapabilir.
SET ROLE rolunadi; --rolü set etmek için
Önceden Tanımlanmış Roller
Profiles and Users
Kullanıcıyı kısıtlamak için yapılan ayarlardır.
Kullanıcı session’a ne kadar bağlı kalacak?, Bu kullanıcı ne kadar idle kalabilecek? gibi soruların cevaplarını buradan yapabiliriz. Ekranda Default görünüm vardır.
180 gün son expire( şifre değiştirmesini iste), kaç gün kala haber versin? Kaç kere yanlış girebilirsin? gibi ayarlamalar yapılır.
Complexity function kısmının VERIFY_FUNCTION_11G şeklinde bir ayarı vardır. Daha kompleks paralolar yaratmak için kullanılır. ( 10g veritabanlarında büyük küçük harf duyarlılığı yoktur)
ALTER USER ile bu profil set edilir.
Quotas ( Kota Alanı)
grant create table to deneme;
–tablo yaratma yetkisi verildi
tablespace(default tablespace users) içinde yer oluşması için(en az 64k) yani segment olarak olması için data olması gerekir içinde bir kayıt eklemeye bunları düzenlemeden yaparsak eklememize izin vermez.
ALTER USER "DENEME" QUOTA 100 M ON "USERS"