Я пытаюсь записать команду sql в файл sql, чтобы сам вывод можно было использовать в качестве сценария. В основном используется сценарий для создания вывода, который сам отформатирован в исполняемый сценарий. Может быть, это излишне, но я не смог придумать лучшего способа. Я мог бы использовать дополнительный набор глаз (или идей), если это возможно. Спасибо
Вот сценарий:
CONNECT &&master_user/&&master_pwd.@&&tns_alias
SET LINESIZE 132 PAGESIZE 0 ECHO OFF FEEDBACK OFF
SET VERIFY OFF HEAD OFF TERM OFF TRIMSPOOL ON
SPO syns_list.sql
--GRANT CREATE ANY SYNONYM TO &&syn_user;//how is this line formed?
select 'create or replace synonym ' || table_name ||
' for ' || '&&master_user..' ||
table_name || ';'
from user_tables
order by table_name asc;
--REVOKE CREATE ANY SYNONYM FROM &&syn_user;//how is this line formed?
SPO OFF;
SET ECHO ON FEEDBACK ON VERIFY ON HEAD ON TERM ON;
exit
Это вывод:
//need the "grant" line here
create or replace synonym AGENTS for webdemo_admin.AGENTS;
create or replace synonym CONSTRUCTION_COMPANY for webdemo_admin.CONSTRUCTION_COMPANY;
create or replace synonym CONTRACT for webdemo_admin.CONTRACT;
create or replace synonym CUSTOMERS for webdemo_admin.CUSTOMERS;
create or replace synonym CUSTOMER_INTEREST for webdemo_admin.CUSTOMER_INTEREST;
create or replace synonym FEATURE for webdemo_admin.FEATURE;
create or replace synonym HOME for webdemo_admin.HOME;
create or replace synonym HOME_NONSTD_FEATURE for webdemo_admin.HOME_NONSTD_FEATURE;
create or replace synonym INTEREST for webdemo_admin.INTEREST;
create or replace synonym NON_STD_FEATURE for webdemo_admin.NON_STD_FEATURE;
create or replace synonym SALES for webdemo_admin.SALES;
create or replace synonym STD_FEATURE for webdemo_admin.STD_FEATURE;
create or replace synonym STD_MODEL for webdemo_admin.STD_MODEL;
create or replace synonym STD_MODEL_FEATURE for webdemo_admin.STD_MODEL_FEATURE;
create or replace synonym SUB_CONTRACTOR for webdemo_admin.SUB_CONTRACTOR;
create or replace synonym WARRANTY_WORK for webdemo_admin.WARRANTY_WORK;
//need the "revoke" line here
Я уверен, что есть более эффективные способы сделать это, я все еще собираюсь с ходу. Как объяснение (для понимания): я хочу, чтобы я поддерживал пользователя с полным контролем над таблицами (и схемой), но мне нужен пользователь (или до 10 пользователей) с перечисленными выше частными синонимами для нескольких соединений иметь тот же тип доступа, что и агент по недвижимости (при просмотре с точки зрения веб-приложения). То есть синонимы позволяют выбирать, вставлять, обновлять и удалять транзакции. Причиной предоставления / отзыва до и после создания синонима является только автоматизация процесса и устранение проблемы безопасности предоставления создания любого синонима обычному пользователю. Кроме того, я не хочу, чтобы синонимы были общедоступными, так как это также является головной болью для отслеживания (и снова проблема безопасности). В любом случае приватность лучше и дает больше контроля.
Опять же, я ценю любые предложения, которые могут быть у каждого.