yitoさんの投稿一覧

助け合いフォーラムの投稿
2025/06/27 投稿
DML文実行時の索引更新に関する選択肢の表現について

細かいところで申し訳ございませんが、「DML文を実行すると索引が更新される」という選択肢の表現が、やや正確さに欠けるように感じました。
この書き方だと、たとえばインデックスが設定されていない列をUPDATEした場合でも、索引が更新されるような誤解を与える可能性があると思います。

実際には、

  • INSERTやDELETEは行全体に関わるため、索引は必ず更新されます
  • UPDATEは、更新対象の列が索引に含まれている場合のみ、索引が更新されます

そのため、選択肢は例えば以下のように書くと、より実際の挙動に近いと思いました。
「DML文によって索引に影響がある場合は、自動的に更新される」
学習上の誤解を防ぐためにも、ご確認いただけますと幸いです。

2025/06/26 投稿
表領域削除に関する設問の表現について

解答内容に特に不満があるわけではなく、自分の考えすぎかもしれませんが、少々気になった点がありましたので投稿させていただきます。

・表領域を削除すると格納されていたオブジェクトは使用できなくなる
この「使用できなくなる」という表現は、オブジェクトが論理的に残っているがアクセス不能になるようにも解釈できます。
しかし実際には、INCLUDING CONTENTS オプションなどを使用して表領域を削除した場合、オブジェクトは物理的にも論理的にも削除されるため、「削除される」あるいは「存在しなくなる」など、より明確な表現の方が適切ではないかと感じました。

・表領域に格納されているオブジェクトを削除してから表領域を削除する
この選択肢が誤りとされている理由として「INCLUDING CONTENTS 句を使えば同時に削除できる」とされていましたが、これは理由として少々弱いように思えます。
なぜなら、INCLUDING CONTENTS を使わずに手動でオブジェクトを削除し、その後に表領域を削除するという操作は、Oracle の仕様に基づいた正当な手順です。
INCLUDING CONTENTS を使うことで手順は簡略化されますが、手動削除の手順が「誤り」とされるのは不自然ではないでしょうか。

細かい点ではありますが、今後の参考になれば幸いです。

2025/06/15 投稿
パスワード期限切れ後の「アカウントロック」に関する記述の誤りについて

Oracle Database のパスワードポリシーに関する選択肢について、
「期限切れ後、最初のログインから7日以内にパスワードを変更しないとアカウントをロックされる」という内容がありましたが、
この中の『アカウントをロックされる』という表現は、Oracle の仕様とは異なるため適切ではないと思います。

パスワードの有効期限 (PASSWORD_LIFE_TIME) と猶予期間 (PASSWORD_GRACE_TIME) の設定によって、猶予期間内にパスワードを変更しないとログインはできなくなりますが、この状態は「アカウントがロックされる」わけではありません。
あくまでパスワードが期限切れとなり、ログインが制限されるだけであり、ロック解除などの操作は不要です。

このように、「ロック」と「ログイン不可」は Oracle においては全く別の状態として扱われるため、選択肢の記載には誤解を招く表現が含まれていると考えます。

■参考:Oracle 公式ドキュメント (Oracle Database Security Guide 19c,"Managing Password Expiration and Grace Period")
If a user does not change the password within the grace period, then the password expires and the user cannot log in to the database. (訳:ユーザーが猶予期間内にパスワードを変更しなかった場合、パスワードは期限切れとなり、ユーザーはデータベースにログインできなくなります。)

細かい点で恐縮ですが、誤解を招く表現だと思いましたので投稿させていただきました。

2025/06/14 返信
問題 選択肢 解答 訂正

ご提示いただいた INDEX オブジェクト権限について、確認させていただきました。

そのうえで恐縮ですが、引用元として挙げていただいたドキュメントについて確認したところ、Oracle TimesTen In-Memory Database SQL リファレンスに関する資料のように見受けられました。

そのため、Oracle Bronze の試験対象となっている Oracle Database(12c 以降の通常版)とは、製品として異なるものではないかと思います。
TimesTen はインメモリ型で軽量な特殊用途のデータベースであり、権限や構文の扱いにおいても、Oracle Database と異なる点があるという認識です。

一方、Oracle Database の公式ドキュメント(SQL Language Reference)では、以下のように明記されています:

“To create an index in another schema, you must have the CREATE ANY INDEX system privilege.”
(他のスキーマ内の表にインデックスを作成するには、CREATE ANY INDEX システム権限が必要です)

このように、Oracle Database においては、オブジェクト権限(INDEX 権限)のみでは他スキーマの表に索引を作成することはできず、CREATE ANY INDEX といったシステム権限が必要とされているようです。

なお、正解のひとつとして挙げられていた「自分のスキーマにビューを作成する」については、CREATE VIEW がシステム権限に分類されることから、設問上では「システム権限が必要」とみなされている可能性もあるかと思います。

ただし、実際にはこの権限は多くのユーザーにデフォルトで付与されるものであり、CREATE ANY VIEW のような特別なシステム権限が求められるわけではないため、「他スキーマの表に索引を作成する」と比較した場合、より明確にシステム権限が必要とされる後者(他スキーマの表に索引を作成する)のほうが、正解として適切なのではないかとも感じております。

合格体験記の投稿
投稿がありません