استفاده از proxy برای کاربر در پایگاه داده اوراکل
یکی از مواردی که همواره در سایت های عملیاتی مورد نیاز است این می باشد که برای بررسی عملکرد باید با نام کاربری فرد مورد نیاز( بدون دانستن کلمه عبور) وارد سیستم شد و فعالیتی را انجام داد. برای اینکار دو راهکار وجود دارد:
- تغییر کلمه عبور به مورد جدید
- استفاده از قابلیت proxy برای کاربران
توضیح راهکار اول:
در این مرحله تغییر کلمه عبور صورت می پذیرد. بعد از تغییر کلمه عبور و انجام کار دو حالت می تواند رخ دهد.
- کلمه عبور جدیدی توسط خود کاربر برای ادامه کار انتخاب شود.
- کلمه عبور توسط ادمین به وضعیت قبل برگردد.
در مورد گزینه اول به دلیل مشخص بودن، توضیح خاصی نمی توان داد.
مراحل کاری گزینه دوم.
- قبل از تغییر کلمه عبور hash شده کلمه عبور را بدست آوردید
SELECT password FROM dba_users WHERE username = ‘SOLTANI’;
در نسخ جدید به دلیل رعایت مسئله امنیتی این روش خروجی نمی دهد و باید با پکیج زیر به کلمه عبور رسید.
select username,
dbms_metadata.get_ddl(‘USER’, username) || ‘/’ usercreate
from
dba_users
WHERE username = ‘SOLTANI’;
درخروجی این دستور، دستور ساخت مجدد کاربر به همراه پسورد hash شده آن ارائه می گردد :
CREATE USER “SOLTANI” IDENTIFIED BY VALUES ‘S:2EDEC51B3BAB77D7EED4806C0B678CBF00D6350BAB38B331C16172F80C52;980FCF48180A778B’
DEFAULT TABLESPACE “users”
TEMPORARY TABLESPACE “TEMP”/
- در این مرحله کلمه عبور را به مقدار جدید تغییر می دهیم:
alter USER “SOLTANI” IDENTIFIED BY VALUES ‘123’;
- بعد از انجام فعالیت های لازم کلمه عبور را به مقدار قبلی تغییر می دهیم :
alter USER “SOLTANI” IDENTIFIED BY VALUES ‘S:2EDEC51B3BAB77D7EED4806C0B678CBF00D6350BAB38B331C16172F80C52;980FCF48180A778B’;
توضیح راهکار دوم ( استفاده از proxy ) :
در این روش به کاربری که به جای کاربر SOLTANI می خواهد وارد شود باید دسترسی زیر را داد
ALTER USER SOLTANI GRANT CONNECT THROUGH EBRAHIMI;
از این به بعد هر وقت کاربر EBRAHIMI بخواهد به جای SOLTANI وارد شود باید با فرمت زیر وارد شود .
SQL>CONN ebrahimi[soltani]/ebrahimipassword
در این حالت دیگر نیاز به تغییر کلمه عبور نمی باشد و کلیه فعالیتهایی که کاربر EBRAHIMI انجام میدهد به نام خود ایشان ثبت می گردد.
در صورتی که بخواهیم این دسترسی را از کاربر ابراهیمی بگیریم از دستور زیر باید استفاده گردد:
ALTER USER SOLTANI REVOKE CONNECT THROUGH EBRAHIMI;