top of page
Yazarın fotoğrafıEkrem Oğuz ŞAHİN

Oracle Proxy User

Merhaba arkadaşlar,

Bu yazımızda Oracle 9i Release 2’ de gelmiş bir özellik olan ‘Proxy user authentication’ özelliğini kullanacağız. Peki Proxy user’a ne gibi durumlarda ihtiyaç duyarız.


Bir DBA olarak bir şema üzerinden Private Database Link oluşturmak & kaldırmak veya DBMS_JOB packagesi ile job ayarlamak istersek o kullanıcının şifresini bilmemiz gerekir. DBA olarak bu şifreyi bilmiyorsak burada yardımımıza "Proxy user" koşuyor.


Yazımız iki kısımdan oluşacak ilk kısımda proxy user kullanımını, ikinci kısımda ise şifresini bilmediğimiz bir kullanıcının sahip olduğu private database linki kaldıracağız.


1. PROXY USER KULLANIMI

Bir kullanıcı oluşturuyoruz.

SQL> CREATE USER DATA4TECH IDENTIFIED BY 1234;
User created.

Oluşturduğumuz kullanıcıya ‘HR’ vasıtasıyla bağlanma yetkisi veriyoruz.

SQL> ALTER USER HR GRANT CONNECT THROUGH DATA4TECH;
User altered.

Görüldüğü gibi oluşturduğumuz kullanıcıya ‘create session’ yetkisi vermediğimiz için bağlanamadı.

SQL> conn DATA4TECH/1234;
ERROR:
ORA-01045: user DATA4TECH lacks CREATE SESSION privilege; logon denied
Warning: You are no longer connected to ORACLE.

HR kullanıcısına oluşturduğumuz kullanıcı üzerinden bağlanabiliyoruz. (Create session yetkisini hala vermedik)

SQL> conn DATA4TECH[HR]/1234
Connected.
SQL> show user
USER is "HR"

Oluşturduğumuz kullanıcıya ‘Create Session’ yetkisi veriyoruz.

SQL> grant create session to DATA4TECH;
Grant succeeded.
SQL> conn data4tech/1234;
Connected.
SQL> show user
USER is "DATA4TECH"

"PROXY_USER" view'ını sorguluyoruz.

SQL> conn / as sysdba
Connected.
SQL> SELECT * FROM PROXY_USERS;
PROXY        CLIENT    AUT    FLAGS 
----------   -------   ----   -----------------------------------DATA4TECH    HR        NO     PROXY MAY ACTIVATE ALL CLIENT ROLES                

Proxy user yetkisini kaldırıyoruz.

SQL> ALTER USER HR REVOKE CONNECT THROUGH DATA4TECH;
User altered.
SQL> SELECT * FROM PROXY_USERS;
no rows selected.

ŞİFRESİNİ BİLMEDİĞİMİZ KULLANICININ PRİVATE DB LİNKİNİ KALDIRMAK

Bu örneğimizde şifresini bilmediğimiz bir kullanıcının ('HR') private database linkini kaldıracağız.


dba_db_links view’inden veritabanında bulunan database linklere bakıyoruz.

SQL> select owner,db_link from dba_db_links;
OWNER      DB_LINK
-----      ----------------------------
SYS        SYS_HUB
HR         DENEME

HR kullanıcısına ait olan database linki drop etmeye çalışıyoruz.

SQL> DROP DATABASE LINK DENEME;
DROP DATABASE LINK DENEME
                   *
ERROR at line 1:
ORA-02024: database link not found

Oluşturduğumuz kullanıcıya ‘HR’ vasıtasıyla bağlanma yetkisi veriyoruz.

SQL> ALTER USER HR GRANT CONNECT THROUGH DATA4TECH;
User altered.

Proxy user vasıtasıyla linki drop ediyoruz.

SQL> conn DATA4TECH[HR]/1234;
Connected.
SQL> show user
USER is "HR"
SQL> drop database link deneme;
Database link dropped.

View’dan linkleri tekrar kontrol ediyoruz.

SQL> select owner,db_link from dba_db_links;
OWNER      DB_LINK
-----      ----------------------------
SYS        SYS_HUB

Görüldüğü gibi proxy user ile şifresini bilmediğimiz bir kullanıcının private database linkini kaldırabildik.


Gelecek yazılarda buluşmak üzere, Sağlıcakla kalın...

187 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page