Giriş
Diğer sunucular gibi Oracle Veritabanının da temel güvenliği farklı kullanıcılar
ve bu kullanıcılara verilen yetkilendirme ile sağlanır. Aynı zamanda bir Oracle
veritabanı, mantıksal olarak kullanıcılar üzerine kuruludur. Yani her nesnenin (tablo,
görüntü (view), indeks, tetikleyici (trigger) gibi.) mutlaka ait olduğu bir kullanıcı
vardır. Bu yüzden Oracle veritabanı yapısını anlamak için kullanıcı yönetimini bilmekte
yarar var.
Enterprise Manager ile Kullanici Oluşturma
ilk olarak, veritabanımıza, Enterprise Manager Console programı ile girmek için
tarayıcımızı (MS Internet Explorer, Mozilla Firefox, vs. olabilir) açıp http://localhost:5500/em
adresini girelim. Karşımıza ilk olarak login penceresi çıkacaktır.
Daha sonra en yetkili ikinci kullanıcı olan “system” kullanıcısı ile veritabanına
girelim.
Karşınıza veritabanımızın açılış sayfası çıkacaktır. Bu sayfanın sol üst kısmında
“Home”, “Performance”, “Administration” ve “Maintenance” başlıklı dört sekme bulunur.
Kullanıcı yönetimine ait işlemlere, Administration sekmesinden ulaşılacağından bu
sekmeye tıklayalım.
Administration sekmesinde, veritabanı yönetimi ile ilgili yönetimsel işlemler yapılabilecek
bir çok bağlantı vardır. Kullanıcı yönetimi ile ilgili sayfalara “Security” başlığının
altında, “Users” bağlantısına tıklayarak ulaşılır.
“Users” bağlanıtısına tıklanarak ulaşılan sayfada veritabanında kayıtlı olan kullanıcılara
ait bilgiler listelenir. Bu bilgiler:
Account Status: Kullanıcı hesabının durumunu gösterir. Bu alanda “Open” yazıyorsa,
hesabın kullanıma açık olduğunu, “Locked” yazıyorsa hesabın kilitli olduğunu ve
bu kullanıcının veritabanına bağlanmasına izin verilmeyeceğini ifade eder. “Expired”
kelimesi, kullanıcının şifre süresinin dolduğunu ve veritabanına bağlanmak istediğinde
şifre yenilemeye zorlanacağını bildirir.
Expiration Date: Hesabın şifresinin dolduğu veya dolacağı zamandır.
Default Tablespace: Kullanıcı herhangi bir nesne (Tablo, index, vs.) yaratırken
eğer özel olarak bir Tablespace adı belirtmez ise nesnenin oluşturulacağı Tablespace’i
belirtir.
Profile : Hesaba ait genel özelliklerin (şifre değiştirme periyotları gibi)
listelendiği yapıdır.
Created: Hesabın ne zaman yaratıldığını belirtir.
Siz hiç kullanıcı yaratmamış da olsanız bu sayfada birçok hesap listelidir. Bu hesaplar,
veritabanı kurulumu esnasında belirli amaçlar i.in otomatik olarak oluşturulan hesaplardır,
çoğu kilitli durumdadır ve gerçek anlamda kullanıcı değillerdir. Yeni bir kullanıcı
oluşturmak için sayfanın sağ tarafında yer alan “Create” tuşuna basın.
Yeni bir kullanıcı hesabı oluşturmak oldukça kolaydır. İlk olarak hesap adını girin.
Profile ve Authentication alanlarını boş bıraktıktan sonra, hesabın şifresini iki
kez girin. Zorunlu olmamakla birlikte ileride sorun çıkmaması için şifrenizi ANSI
karakterlerle (ingiliz alfabesinde bulunan harf ve rakamlar) oluşturmanızı “i” harfini
kullanmamanızı öneririm. Bu durumda şifrede büyük/küçük harf ayrımı yoktur.
Sıra, kullanıcının nesnelerinin yerleştirileceği Tablespace seçimine geldi. Bunun
için, “Default Tablespace” alanına Tablespace’in adını doğrudan yazabileceğiniz
gibi, kutunun sağ tarafındaki el fenerine tıklayarak mevcut tablespace lerin listelenmesini
de sağlayabilirsiniz.
Listlenen Tablespace lerden birini seçerek “select” tuşuna basınız.
Gördüğünüz gibi seçtiğimiz Tablespace in adı “Default Tablespace” kutusuna işlendi.
Bir sonraki adımda Geçici (Temporarı) Tablespace seçeceğiz. Geçici Tablespace, bir
kullanıcının indeks oluşturma gibi bazı işlemler için kullanılan alandır. Geçici
Tablespace’i seçmek için “Temporary Tablespace” etiketinin yanındaki kutunun sağındaki
el fenerine tıklayın. Karşınıza aşağıdakine benzer bir pencere çıkacaktır.
Genellikle kurulum sırasında bu amaç için “TEMP” adında bir Tablespace oluşturulur
ve tüm kullanıcılar bu Tablespace’i kullanırlar. Biz de bu kurala uyup “TEMP” Tablespace
ini geçici tablespace olarak seçelim ve “Select” tuşuna basalım.
|
Bu aşamada “OK” tuşuna basarak kullanıcı hesabını oluşturabilirsiniz. Ama ondan
önce, sayfanın üst ve alt tarafında yer alan sekmelere dikkatinizi çekmek istiyorum.
şu anda “General” sekmesinde bulunuyoruz. “Roles” sekmesine tıklarsanız, kullanıcının
sahip olduğu roller listelenir. Oracle Veritabanında “rol” kavramı, belirli yetkileri
toplu halde içinde barındıran yapılardır ve bir rol, bir kullanıcıya verildiğinde
o kullanıcı, rolün barındırdığı tüm yetkilere sahip olur. Bir kullanıcı pek çok
role sahip olabilir. Enterprise Manager Console ile bir kullanıcı oluşturduğunuzda,
veritabanına başlanıp tablo oluşturma yetkisi sağlayan “CONNECT” rolü, varsayılan
olarak oluşturulan kullanıcıya verilir. Rol adının sağ tarafında “Admin Option”
ve “Default” isimleriyle iki adet onay kutusu mevcuttur. şu an olduğu gibi “Default”
onay kutusu seçili ise kullanıcı bu rolün yetkilerini sadece kendisi kullanabilir.
“Admin Option” ın seçili olması durumunda ise rolün verildiği kullanıcı bu rolü
başkalarına da verebilir.
|
Bir sonraki “System Privileges” sekmesi ise kullanıcıya verilen (indeks oluşturma,
trigger yaratma gibi) çeşitli sistem yetkilerini listeler. Henüz kullanıcıya bu
çeşit bir yetki vermediğimiz için liste boş.
“Object Privileges” sekmesi de kullanıcının, özel olarak bir nesne üzerinde sahip
olduğu yetkileri ifade eder. Örneğin “B” kullanıcısı, “A” kullanıcısına ait “Ogrenciler”
tablosunu sadece okuma yetkisine sahip iken, “C” kullanıcısı bu tablo üzerinde hem
okuma, hem yazma yetkisine sahip olabilir.
“Quotas” sekmesinde ise kullanıcının, mevcut “Tablespace” ler üzerinde kullanma
yetkisi verilen alan miktarları listelenir. Gördüğünüz gibi oluşturmakta olduğumuz
kullanıcının, henüz oluşturduğu bir nesneyi koyacak yeri yok.
Sırada “Consumer Groups” sekmesi var. Oracle Veritabanı varsayılan olarak demokratik
bir sistemdir. Yani, bütün kullanıcılar eşit haklara sahiptir. Ama zaman zaman bu
çerçevenin dışına çıkmak istenirse de buna olanak tanır. Örneğin veritabanı yöneticisi,
eğer veritabanının kurulu olduğu sistemde aşırı yüklenme olduğunda kaynakların
kullanıcılar arasında eşit olarak paylaştırılması yerine belli kullanıcılara öncelik
verilmesini istiyorsa, Oracle'ın “Consumer Group” yapısından yaralanabilir. Ayrıntıları
başka bir makaleye havale ederek şimdilik geçiyorum.
“Proxy User” kavramının ne ifade ettiğini şu an hatırlayamıyorum. Bu konuda bilgi
sahibi arkadaşlar mesaj atarlarsa bunları bu kısımda paylaşabilirim.
Her neyse, sağ üst köşedeki “OK” tuşuna bastığınızda kullanıcı oluşturulacak ve
listede görünecektir.
“CANER” isimli bu kullanıcımız herkese hayırlı olsun. Artık EM Console u kapatabilirsiniz.
şimdi CANER in marifetlerini görebilmek için sqlplus'ı açıp bu kullanıcı ile veritabanına
başlanalım. Sqlplus'a giriş makalesinde belirtildiği gibi sqlplus'tan veritabanına
başlanma yöntemlerinden birisi kullanycı_adı/şifre@veritabanı_adı
şeklinde idi. Test amaçlı olduğu için “CANER” in şifresini de “caner” koymuştum.
şimdi bu şekilde veritabanına başlanalım.
Başarıyla veritabanına başlandık. şimdi SQLPlus bizden komut bekliyor.
Sistem tarihini öğrenmek için “select sysdate from dual” sorgusunu çalıştıracağım.
Tarihi aşağıdaki gibi gösterdi.
şimdi “CANER” in sahip olduğu tabloları listeleyelim.
CANERin henüz tablosu olmadığı için herhangi bir kayıt dönmedi.
Öyleyse basit bir tablo oluşturalım, adı da “CANER1” olsun.
Ama hata mesajı aldık. Hata, CANER in varsayılan Tablespace i olan “USERS” Tablespace
inde kotasının (yazma yetkisi verilen alan) olmamasından kaynaklanıyor. Bu pencereyi
(açık şekilde) olduğu gibi bırakın.
EM Console a tekrar girmek için tarayıcınıza gerekli adresi girin ve system kullanıcısı
ile veritabanına bağlanın.
Gelen sayfada, administration sekmesine geçin.
Users bağlantısına tıklayın.
“CANER” üzerine tıklayın.
“Quotas” sekmesine geçin.
Gördüğünüz gibi CANERin USERS tablespace i üzerinde kotası yok.
USERS satırında Values alanına sıfırdan farklı bir değer yazın.
Eğer bu işlemi, EM Console kullanmadan, SQL dili ile nasıl yapabileceğinizi öğrenmek
istiyorsanız “Show SQL” tuşuna basabilirsiniz. Geri dönmek için ise “Return” e basın.
“Apply” tuşuna bastığınızda değişiklik gerçekleşecektir.
Sağ üst köşedeki “Logout” tuşuna tıklayarak EM Console'dan çıkabilirsiniz.
şimdi, CANER kullanıcısı ile girdiğimiz sqlplus penceresine geri dönelim.
Yukarı ok tuşuna basarak az önce başaramadığımız tablo yaratma işlemini tekrar deneyelim.
Gördüğünüz gibi bu sefer başardşk, aferin bize! şimdi başarımızı belgelemek için
CANERin tablolarını listeletelim.
Gördüğünüz gibi CANER1 tablomuz göründü.
Bu tabloya şimdi kayıt girelim.
Girilen kayıtları listeleyelim.
Son olarak girdiğimiz kaydı kalıcı hale getirmek için “commit” komutunu verelim.
Artık sqlplus'tan çıkabiliriz.
Sonuç
Böylelikle makalemizin sonuna geldik. Bu makalede Oracle veritabanında genel hatlarıyla
bir kullanıcı oluşturmaya değindim. Oracle veritabanında kullanıcı ve güvenlik,
üzerine tek başına yüzlerce sayfa yazılabilecek bir konudur. İleride belki bazı
alt alanlara da değinebiliriz. Ancak, ayrıntılı bilgi için Oracle dokümantasyonunu
incelemenizi tavsiye ederim.

[
02.04.2007]