PREPARATION
受験対策

Silverの例題解説「運用管理 - 基本的な運用管理作業(データベースロール/ユーザの追加・削除・変更方法)」

今回は、Silverの「運用管理 - 基本的な運用管理作業(データベースロール/ユーザの追加・削除・変更方法)」からの出題です。

例題

1.107

データベースを作成する権限を持つユーザcdbuserを作成する方法として適切なものを2つ選びなさい。なお、いずれの選択肢でも、コマンドを実行するユーザは必要な権限を保有しているものとする。

  1. psql でデータベースに接続して以下を実行する
    create role cdbuser login createdb
  2. psql でデータベースに接続して以下を実行する
    create user cdbuser db
  3. psql でデータベースに接続して以下を実行する
    create user name=cdbuser grant=dbcreate

  4. OSのコマンドラインから以下を実行する
    createuser -d cdbuser

  5. OSのコマンドラインから以下を実行する
    createuser -D cdbuser

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

解答と解説

データベースにユーザを作成するには、データベースに接続し、CREATE USER を実行します。構文は CREATE USER の後に作成するユーザ名、その後に付与する権限(あるいは付与しない権限)を指定します。データベース作成の権限を付与するには CREATEDB というオプションを指定します。

PostgreSQL ではユーザとロールの区別がないので、CREATE ROLEでもユーザを作ることができますが、このとき、デフォルトで作成されるロールにはデータベース接続の権限がありませんので、データベースに接続する権限を付与するためには LOGIN というオプションを指定します。

選択肢Aはこの形式です。選択肢BおよびCはオプションの指定の仕方が間違っています。

PostgreSQL では、OSのコマンドラインから createuser というコマンドを実行することでも、データベースユーザを作成することができます。このコマンドは指定されたオプションを解釈し、データベースに接続して CREATE ROLE を発行します。パラメータの指定はSQLのCREATE USERとは順序が逆で、createuser の直後に権限に関するオプションを指定し、最後に作成するユーザ名を指定します。

データベース作成(CREATEDB )の権限を付与するには -d というオプションを指定します。大文字にして -D とするとデータベース権限を付与しない、という意味になります(デフォルトで付与されないので、-Dを指定しなくても同じ結果になります)。

同じように、小文字で -l、-r、-sはそれぞれ接続(LOGIN)、ユーザ作成(CREATEROLE)、スーパーユーザ(SUPERUSER)の権限を付与し、大文字で-L、-R、-Sとすると、それらの権限を付与しないという意味になるので、これらはまとめて理解しておくと良いでしょう。

したがって正解はAとDです。

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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