※※※本投稿の内容は古いため、こちらを参照ください。※※※
■■■Oracle Cloudのウェビナーシリーズは? → こちら■■■
はじめに
Oracle Cloud Infrastructure 上にある Autonomous Database へ接続してSQLを実行するのに、ブラウザベースのSQL Developer Webが利用できます。adminユーザ(*1)での接続なら、Autonomous Database を作成してすぐに利用できます。クラウド環境にあるデータベースなので、やはり、ブラウザからSQLを実行したい気がします。
デスクトップ版のSQL Developerは古くからありますが、そこから機能を厳選した感じで、ショートカットキーも踏襲されています。
(*1): 本投稿内でのadminユーザとは、Autonomous Databaseを管理するデフォルトの管理ユーザのことを指しています。
(余談ですが、ブラウザベースでのSQL実行には、他にも Oracle ML SQL Notebookや、Oracle Application Expressを利用する方法もあります。)
SQL Developer Web へのアクセス(adminの場合)
adminでログイン
OCIコンソールのADBのページから、「サービスコンソール」をクリック
右側の「Development」→ 「SQL Developer Web」
ログイン画面になるので、以下を入力
- ユーザ名:admin
- パスワード:(Autonomous Database作成時に指定したadminのパスワード)
SQLを実行
「ワークシート」に、以下のSQLを直接入力して、「文の実行」ボタンをクリックして(またはCtrl + Enter で)実行したところです。画面下部に「問合せ結果」が表示されます。
select object_name, object_type from dba_objects where rownum < 10;
(Ctrl + Space でSQLの補完が可能)
SQLの整形(フォーマット)
ログイン時のウィザードでも教えてくれる「SQLのフォーマット」ボタンをクリックしたところです(または Ctrl + F7 )。右上の「ワークシート」ウィンドゥ内のSQLが整形されました。
データ・モデラーも使ってみる
デスクトップ版のSQL Developerでご紹介している
SQL DeveloperのData Modelerでデータベースに接続してテーブルの構造を出力する
↑↑ この機能、Web版でも利用できます。
「データ・モデラー」タブで、「SSB」ユーザを選択、表示されたテーブル5つを右側にドラッグすると(Ctrlキーで複数選択可)、テーブルの構造と、FK(外部キー)制約を元にしたリレーションが表示されました。
※SSBはAutonomous Data Warehouseのサンプルスキーマです
「データ・モデラー」タブが見つからないときは、左上の「三」押下で左側に表示されるメニューから、「アクション」→「データ・モデラー」から辿れます。
SQL Developer Web へ、admin以外のユーザで接続する
実際にデータベースユーザが利用する時には、admin以外のユーザで接続することになるかと思います。追加の手順を実施し、専用のURLからログインします。
- (データベースユーザを作成する)
- プロシージャを実行し、そのユーザでのアクセスを有効にする
- 上記プロシージャ内で指定した文字列を使用するような、専用のログインURLからアクセスする
ドキュメントではこちら Provide SQL Developer Web Access to Database Users に記載がありますが、
スマートスタイル様のBLOGにご紹介がありましたので、ご参考になるかと思います。(有難うございます!)
SQL Developer Web(SDW)からATPに接続する
→ admin以外のユーザーログイン
追記
こんな感じでやります。ADMINでログインしているSQL Developer Webの画面上で実施するとよいです。そのときのURLもメモしておき、後で利用します。
-- (データベースユーザを作成し、権限付与)
CREATE USER SCOTT IDENTIFIED BY Tiger123456##; -- ①ユーザ名とパスワードを指定
GRANT DWROLE to SCOTT;
GRANT UNLIMITED TABLESPACE to SCOTT;
-- プロシージャを実行し、そのユーザでのアクセスを有効にする
BEGIN
ORDS_ADMIN.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'SCOTT', -- 上記①で指定したユーザ名(スキーマ名)※大文字で
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'sctweb', -- ②URL内に含める文字列を指定
p_auto_rest_auth => TRUE
);
COMMIT;
END;
/
ADMINでアクセスしたときのURLを元に、URLが確認できます。
- ADMINでのURLが↓のとき、
- SCOTTでのURLは、
- admin 部分を プロシージャ内 ②で指定した文字列 に変更したものが、そのユーザでログイン可能なURL
- https://hogehoge.adb.us-phoenix-1.oraclecloudxx.com/ords/sctweb/_sdw/?nav=worksheet
※上記URLで接続できないときは、Autonomous Databaseが起動していることを確認する。
DWROLEについて
ロールとは、様々な権限情報を付与しやすくするためにひとまとめにしたグループです。autonomous data warehouse (ADW) や autonomous transaction processing (ATP) には、dwroleという名前のロールが用意されています。
上の手順では、dwrole を付与(grant)していますが、そのdwroleに含まれる権限の種類をドキュメント等で確認の上、使うのがよいかと思います。(必要最低限の権限を与えることが適切なので)
- ATPのドキュメント: Using Oracle Autonomous Transaction Processing - Part II Managing and Monitoring Autonomous Transaction Processing - Manage User Privileges with Autonomous Transaction Processing
- ADWのドキュメント: Using Oracle Autonomous Data Warehouse - Part II Managing and Monitoring Autonomous Data Warehouse - Manage User Privileges with Autonomous Data Warehouse
参考
ドキュメント(製品マニュアル)
その他ご参考情報
- SQL Developer Web(SDW)からATPに接続する
- SQL DeveloperのData Modelerでデータベースに接続してテーブルの構造を出力する
- [SQL Developer Web comes to Autonomous Data Warehouse - oh YES!]
(https://blogs.oracle.com/datawarehousing/sql-developer-web-comes-to-autonomous-data-warehouse-oh-yes)