ローカルの環境にOracle REST Data Services(以降ORDSとします)をインストールしSQL Developer Webに接続するには、ORDSにスキーマを登録する(ORDSをスキーマにたいして有効にする)必要があります。Autonomous Databaseの管理ユーザーADMINとは異なり、ローカルの環境ではSQL Developer Webにアクセス可能なユーザーは、デフォルトで作成されません。
ロールPDB_DBAが割り当たっているユーザーで、SQL Developer Webに接続ができるようにするPL/SQLスクリプトを書いてみました。
PDBにユーザーSYSで接続し、上記のスクリプトを実行します。PDBの管理ユーザーは一般的にADMINかPDBADMINという名前で作成されるため、その名前に制限されるように条件を付けています。ADMIN、PDBADMIN以外の名前で管理ユーザーが作成されている場合は、条件を変更します。
実行結果は以下のようになります。
SQL> set echo on
SQL> @create-admin-user-sdw.sql
SQL> set serveroutput on
SQL> begin
2 for r in (select * from dba_role_privs)
3 loop
4 if r.grantee <> 'SYS' and r.grantee in ('ADMIN','PDBADMIN') then
5 ords_admin.enable_schema(
6 p_enabled => true,
7 p_schema => r.grantee,
8 p_url_mapping_type => 'BASE_PATH',
9 p_url_mapping_pattern => lower(r.grantee),
10 p_auto_rest_auth => true
11 );
12 dbms_output.put_line('Schema ' || r.grantee || ' is allowed to connect to SQL Developer Web.');
13 end if;
14 end loop;
15 commit;
16 end;
17 /
Schema PDBADMIN is allowed to connect to SQL Developer Web.
PL/SQL procedure successfully completed.
SQL>