12 Şubat 2008 Salı

Kullanıcı güvenliği ve yetkileri

Belki de Oracle veritabanında en önemli konulardan birisi kullancıların yetkileridir. Hangi kullanıcıya hangi yetkilerin verildiğinin çok iyi takip edilmesi ve dikkatli verilmesi gerekir.
Bir kullanıcı yaratalım,
SQL> create user deneme identified by deneme default tablespace quota unlimited on ;
Bu yarattığımız kullanıcı üzerine hiçbir yetki bulunmuyor. Şuan da hiçbir şekilde veritabanına bağlanıp objeler yaratamaz. Hatta veritabanına bağlanamaz.
Projenin gerektirdiği kadar "privilege"'a sahip ve proje ile ilişkili bir isimde "role" yaratalım.
SQL> create role developer;
"developer" ismiyle bir role yarattık. Bundan sonra privilegelarımızı bu role'e grant ederek dağıtacağız.
SQL> grant create session to developer;
SQL> grant developer to deneme;
developer role'üne create session privilege'ı verdik ve onuda deneme kullanıcısına verdik. Böylece deneme kullanıcısının üzerine bir tane "create session" yetkili rolü olmuş oldu. Bundan sonra deneme kullanıcısı veritabanına bağlantısını sağlayabilir.
SQL> grant administer database trigger to developer;
otomatik olarak deneme kullanıcısı "administer database trigger" yetkisine sahip oldu.
Bu şekilde yetkilerimizi dağıtırsak, takip etmesi ve tekrar yetkilendirmesi çok daha rahat olacaktır. Kesinlikle tek tek privilege atamayın!

Ve unutmayın, object privilegeları veren user drop edildiği zaman o user tarafından yetkilendirilen kişinin üzerinden de kalkar. Fakat system privilegelar kalıcıdır...

İyi çalışmalar,

Ogan

Hiç yorum yok:

Takip et: @oganozdogan