PREPARATION
受験対策

Silverの例題解説
「S2.1 インストール方法(initdbコマンドの使い方)」

「S2 運用管理 - S2.1 インストール方法(initdbコマンドの使い方)」からの出題です。

例題

2.131

initdbコマンドを実行してデータベースクラスタを作成することについて、もっとも適切な説明を3つ選びなさい。

  1. デフォルトでは、実行したユーザのみがデータベースクラスタのファイルにアクセスできる。
  2. データベースサーバープロセスの所有者となるユーザが実行する。
  3. セキュリティを堅固にするため、rootユーザで実行するのが望ましい。

  4. 作成されるデータベースクラスタには、テンプレートデータベースが2つと通常のデータベースが1つ含まれる。

  5. データベースクラスタ作成時に指定する文字セット符号化方式はクラスタ内の全データベースで共通となるので、何を指定するか十分に注意する必要がある。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2023年1月11日

解答と解説

PostgreSQLのプログラムをインストールした後、データベースサーバーとして利用可能にするためには、initdbコマンドを実行してデータベースクラスタを作成する必要があります。

作成されるデータベースクラスタはinitdbコマンドを実行したユーザが所有するものとなり、デフォルトではそのユーザのみがアクセスすることができます。ただし、作成時のオプションにより、そのユーザが所属するグループのユーザに読み取りアクセスを許可することができます。これはデータベースファイルのバックアップを取得するときなどに有効でしょう。

データベースクラスタのファイルにはinitdbを実行したユーザしかアクセスできないので、データベースサーバーのプロセスも同じユーザが実行する必要があります。逆に言えば、サーバープロセスの所有者となるユーザがinitdbを実行しなければなりません。

Unix/Linuxのrootユーザはシステムのすべてのファイルにアクセスできる強力な管理者ユーザですが、PostgreSQLではrootユーザではデータベースサーバープロセスを実行できないような制限がかけられています。思わぬセキュリティホールによってroot権限を奪われることを防ぐのがその理由の一つです。そのためinitdbもrootユーザで実行することはできません。

作成されるデータベースクラスタには、template0とtemplate1の2つのテンプレートデータベース、postgresという通常のデータベースが含まれます。

initdbの実行時のオプションで、デフォルトの文字セット符号化方式を指定します。template1とpostgresの2つのデータベースはこの符号化方式で作成されます。また、createdbコマンドなどでデータベースを追加する際も、デフォルトではtemplate1のコピーが作られるため、同じ符号化方式になります。そのため、何を指定するかには注意する必要がありますが、あくまでもデフォルトであって、データベースことにデフォルトとは異なる符号化方式を採用することは可能です。

従って正解はA、B、Dです。

例題解説についてのご質問やご意見は以下からご連絡ください。

※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。