ایجاد synonym برای کاربران
تاریخ انتشار: | 1398/تیر/13 |
نویسنده: | مهندس امیر مکرم |
گروه دانش : | Oracle Datebase |
تعداد بازدید: | 35 مرتبه |
اشتراک گذاری: |
ایجاد synonym برای کاربران در اوراکل 12c امکان پذیر است. این کار با کمک پارامتر مخفی enable_schema_synonyms_ قابل انجام می باشد:
SQL> alter system set “_enable_schema_synonyms” = true scope=spfile;
System altered.
برای مثال، بعد از تنظیم این پارامتر، می توانیم با کمک دستور زیر، برای کاربر amir، نام دیگری هم تعیین می کنیم:
SQL> create schema synonym new_name for amir;
Schema synonym created.
SQL> select p.user#,p.name,p.type#,p.password,p.ctime,p.exptime from sys.user$ p where p.namein(‘NEW_NAME’,’AMIR’);
با ایجاد این synonym، می توان به ابجکتهای کاربر amir، از طریق new_name دسترسی داشت:
SQL>select count(*) from NEW_NAME.MYTBL;
389999
یا برای کاربر amir، شی جدیدی ایجاد کرد:
SQL>create view NEW_NAME.myview as select * from NEW_NAME.MYTBL;
اما امکان لاگین به کاربر amir از طریق synonym آن وجود ندارد:
SQL> conn new_name/a
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn amir/a
Connected.
همچنین اجرای دستور alter user برای این synonym، کابردی نخواهد داشت:
SQL> alter user new_name identified by aa;
ORA-01918: user ‘NEW_NAME’ does not exist
استفاده از synonym برای کاربران، خالی از اشکال نمی باشد برای مثال، با سناریوی زیر، به خطا برخواهیم خورد:
SQL> drop table new_name.mytbl;
Table dropped.
SQL> create table amir.mytbl as select * from v$datafile;
Table created.
SQL> select count(*) from amir.mytbl;
COUNT(*)
———-
6
SQL> select count(*) from new_name.mytbl;
COUNT(*)