Veri Tabanı Yönetim Sistemleri 2 Ders 3 Oracle'da İlk Ayarlar Kullanıcı ve Rol İşlemleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü SQL Plus • SQL Plus, Oracle üzerinde kullanıcı yaratma, nesne yaratma, veritabanını açma/kapama gibi işlemler yapmak amacıyla kullanılan komut istemi arayüzünde (CLI: Command Line Interface) çalışan bir veritabanı yönetim aracıdır. • Komut İstemi üzerinden sqlplus yazılarak veya Windows üzerinden ilgili kısayolun tıklanması ile çalıştırılan SQL Plus ilk açıldığında kullanıcı adı ve şifre girilerek mevcut bilgisayardaki varsayılan veritabanına bağlanılabilir (veya sqlplus username/password gibi bir kullanım ile direkt olarak bağlanılabilir). • Farklı bir bilgisayardaki veritabanına bağlanmak için aşağıdaki gibi bir yazım kullanılabilir: – sqlplus altan/[email protected]/ORCL:1521 Detaylı bilgi için: "Oracle Database 11g: SQL Fundamentals I" altında "app_d.ppt" SQL Developer • SQL Developer, grafik kullanıcı arayüzünde (GUI: Graphical User Interface) çalışan java tabanlı bir veritabanı yönetim aracıdır. • SQL Developer ile açık konumdaki bir veritabanına Listener üzerinden bağlanılabilir. – SQL Plus ile veritabanı ve listener kapalı konumda iken de bağlanılabilir ve startup ile veritabanı açılıp shutdown ile kapatılabilir. • SQL Developer ile bir Access dosyasına da bağlanılabilir. Detaylı bilgi için: "Oracle Database 11g: SQL Fundamentals I" altında "app_e.ppt" Listener Oluşturma • Oracle kurulumu sırasında sadece yazılım kurulumu yapılıp, sonrasında Database Configuration Assistant ile veritabanı yaratıldı ise, bu veritabanına dışarıdan bağlanılabilmesi için gerekli olan "Listener" yaratılmasının da Net Configuration Assistant ile yapılması gerekir. – Eğer yazılım ile birlikte veritabanı kuruldu ise gerekli olan Listener da otomatik olarak yaratılır. Net Configuration Assistant • Listener, Naming Method, Net Service Name ve Directory Usage yapılandırması için kullanılır. NetCA ile Listener Yapılandırması NetCA ile Listener Yapılandırması NetCA ile Listener Yapılandırması NetCA ile Listener Yapılandırması NetCA ile Listener Yapılandırması Net Manager NetCA ile yapılabilen işlemlerin çoğu Net Manager ile de yapılabilir. NetCA ile yaratılan Listener için otomatik olarak Windows altında bir hizmet oluşturulurken, Net Manager ile yaratılan Listener için bu işlem yapılmaz. Kullanıcı Yaratma • Kullanıcı yaratma CREATE USER komutu ile yapılır. Bu komutu çalıştırma yetkisi genellikle DBA yada güvenlik yöneticisi olan kişilerde vardır. CREATE USER AHMET IDENTIFIED BY A853B DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT; Kullanıcının Adı Şifresi Detaylı bilgi için: "Oracle Database 11g: SQL Fundamentals II" altında "Les01.ppt" Kullanıcının Tanımlarını Değiştirme • Tüm nesne tanımlarının değiştirilmesinde olduğu gibi kullanıcıların da (kullanıcılar da bir nesnedir) tanımlarını ALTER komutu ile değiştirebiliriz. • Aşağıdaki komut AHMET kullanıcısının şifresini değiştirir: ALTER USER AHMET IDENTIFIED BY XY358; Kullanıcıyı Silme • Diğer nesnelerde olduğu gibi kullanıcı silmede de DROP komutu kullanılır: DROP USER AHMET; • Eğer kullanıcının şeması altında nesneler varsa bu nesnelerin de silinmesi için CASCADE ifadesi kullanılmalıdır: DROP USER AHMET CASCADE; • Eğer kullanıcı sistemde bağlı durumda ise bağlantısını kesene kadar silinemez. Sistem Yetkileri • Kullanıcıların sistemde neler yapabileceklerini sınırlayan tanımlamalara sistem yetkileri denir. • Bir kullanıcı ilk yaratıldığı anda hiçbir yetkisi yoktur. • Sisteme bağlanabilmesi için CREATE SESSION yetkisinin kullanıcıya verilmesi gerekir: GRANT CREATE SESSION TO AHMET; • GRANT komutu ile aynı anda birden çok yetki birden çok kullanıcıya verilebilir: GRANT CREATE TABLE, UNLIMITED TABLESPACE TO AHMET, MEHMET; Sistem Yetkileri (devam) • Sistem Yetkileri çok fazladır, hepsinin ezbere bilinmesinin gereği yoktur. İsminden yetkinin ne olduğu konusunda çıkarım yapılabilir. Eğer yetki isminde “ANY” sözcüğü geçiyorsa farklı şemalar üzerinde işlem yapabilme yetkisi olduğunu gösterir. • CREATE TABLE: Kullanıcının sadece kendi şeması üzerinde tablo oluşturma yetkisi. • CREATE ANY TABLE: Kullanıcının tüm şemalar üzerinde tablo oluşturma yetkisi. Verilen Yetkilerin Geri Alınması • Kullanıcılara verilen yetkilerin geri alınması REVOKE komutu ile gerçekleştirilir: REVOKE CREATE TABLE FROM AHMET; Nesne Yetkileri • Bir kullanıcının veri tabanındaki nesneler üzerinde ne tür yetkileri olduğunu tanımlamak için kullanılan yapıya nesne yetkisi denir. • Bir kullanıcı kendi yarattığı tablolar üzerinde SELECT yetkisine sahiptir, fakat başka şemalardaki tablolar üzerinde SELECT sorgusu yapabilmesi için gerekli yetkinin verilmesi gerekir. GRANT yetkiler [(sütunlar)] Tüm kullanıcılar ON nesneler TO kullanıcılar [roller] [PUBLIC]; Nesne Yetkisi Verme • MEHMET kendisine ait olan PERSONEL tablosu üzerinde SELECT sorgusu yapma yetkisini AHMET’e vermek isterse: GRANT SELECT ON PERSONEL TO AHMET; • AHMET kendisine ait olan OGRENCILER tablosunun sadece ADI ve SOYADI alanları üzerinde UPDATE yapma yetkisini MEHMET’e vermek isterse: GRANT UPDATE (ADI, SOYADI) ON OGRENCILER TO MEHMET; Rol • Rol, birçok yetkinin bir araya getirilmesi ile oluşan yetki gruplarına verilen isimdir. • Bir rol kendi içinde başka rolleri de içerebilir. • Örneğin Oracle 11g’de DBA Rolünün; – 16 Rolü – 202 Sistem Yetkisi – 284 Nesne Yetkisi vardır. * Oracle Enterprise Manager üzerinden görülebilir. Rol Yaratma • Rol de bir nesne olduğu için CREATE komutu ile yaratılır. Fakat diğer nesnelerden farklı olarak, yaratan kullanıcının şeması altında bu roller görünmez (rol bir kişiye ait değildir). CREATE ROLE DENEME; GRANT CREATE TABLE, CREATE VIEW, UNLIMITED TABLESPACE TO DENEME; GRANT DENEME TO AHMET; GRANT DENEME TO ALTAN WITH ADMIN OPTION; SYSDBA ve SYSOPER Sistem Yetkileri • SYSDBA: Bu yetki ile veritabanına bağlanan kullanıcı tüm işlemleri yapabilme iznine sahip olur. Bunlardan bazıları: – – – – – STARTUP ve SHUTDOWN işlemlerini gerçekleştirir. CREATE DATABASE (Veritabanı yaratma) ALTER DATABASE: open, mount, back up, karakter seti değiştirme CREATE SPFILE (Sistem Parametre Dosyası yaratma) ARCHIVELOG ve RECOVERY • SYSOPER: Bu yetki ile veritabanına bağlanan kullanıcı temel işletim görevlerini yapma iznine sahip olur, fakat kullanıcı verilerini göremez. – – – – STARTUP ve SHUTDOWN işlemlerini gerçekleştirir. ALTER DATABASE: open, mount, back up CREATE SPFILE (Sistem Parametre Dosyası yaratma) ARCHIVELOG ve RECOVERY SYS ve SYSTEM Kullanıcıları • SYS kullanıcısı tüm veri tabanının ve veri sözlüğünün sahibidir. Sisteme giriş yaparken AS SYSDBA eki ile bağlanır. Sahip olduğu SYS şeması üzerinde değişiklik yapılmamalıdır. • SYSTEM kullanıcısı veri sözlüğü dışında başka idari işler ile ilgili tabloları ve görünümleri sağlayan SYSTEM şemasının sahibidir. Sisteme Normal kullanıcı olarak giriş yapar. SYS şemasının nesnelerine erişme yetkisi olan roller • SELECT_CATALOG_ROLE: Kullanıcılara veri sözlüğü görünümleri üzerinde sorgu yapma yetkisi verir. • EXECUTE_CATALOG_ROLE: Kullanıcıların veri sözlüğü üzerinde paket (package) ve prosedür yürütme yetkisi olmasını sağlar. • DELETE_CATALOG_ROLE: Sistem izleme (audit) tabloları olan SYS.AUD$ ve SYS.FGA_LOG$ tablolarında silme yetkisi verir. Enterprise Manager Database Express • Oracle 12c Enterprise Manager (EM) Database Express, Oracle veritabanının durumunun izlenmesi ve bazı yönetimsel işlerin yapılabilmesi için kullanılan web tabanlı bir yazılımdır. • 10g ve 11g'deki EM Database Control'den farklı olarak EM Database Express ile tablo ve prosedür gibi veritabanı nesneleri yaratılamaz. Kullanıcı ve Rol yaratma ile bunlar üzerinde yetki değişiklikleri gibi işlemler ise Security menüsünden yapılabilir. • Database Configuration Assistant ile veritabanı yaratıldıktan sonra çıkan bilgi penceresinde (bak: geçen hafta) EM Database Express'e erişmek için gerekli URL bilgisi verilir: – Oracle 12c için: https://localhost:5500/em – Oracle 11g için: https://localhost:1158/em NOT: Kurulum sırasında güvenlik duvarı izinlerinden birini EM için 5500 portu (11g'de 1158) diğerini ise Listener için 1521 portunun açılması için vermiştik. EM Database Express ile RESOURCE Rolü: RESOURCE Rolü 8 farklı sistem yetkisi içerir. CREATE SESSION yetkisi bunlardan biri olmadığı için bu yetkiyi (veya bu yetkiyi içeren CONNECT rolünü) de kullanıcıya vermemiz gerekir. UNLIMITED TABLESPACE veya kota vermeyi de unutmamak gerekir.