PREPARATION
受験対策

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

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

例題

2.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です。

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

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

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

OSS-DBの受験対策

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

例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

OSS-DBやPostgreSQLの知識、技術を得るために役立つ情報の紹介やコラムを公開しています。