今回は、Silverの「S2 運用管理 - S2.5 基本的な運用管理作業(データベースロール/ユーザの追加・削除・変更方法)」からの出題です。
psql でデータベースに接続して以下を実行する
create user name=cdbuser grant=dbcreate
OSのコマンドラインから以下を実行する
createuser -d cdbuser
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です。
例題解説についてのご質問やご意見は以下からご連絡ください。
※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。
© EDUCO All Rights Reserved.