今回は、Silverの「運用管理 - 基本的な運用管理作業(データベースロール/ユーザの追加・削除・変更方法)」からの出題です。
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です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.