「運用管理 - インストール方法(initdbコマンドの使い方)」からの出題です。
セキュリティを堅固にするため、rootユーザで実行するのが望ましい。
作成されるデータベースクラスタには、テンプレートデータベースが2つと通常のデータベースが1つ含まれる。
データベースクラスタ作成時に指定する文字セット符号化方式はクラスタ内の全データベースで共通となるので、何を指定するか十分に注意する必要がある。
※この例題は実際の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です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.