「S3 開発/SQL - S3.1 SQL コマンド(関数定義 / プロシージャ定義)」からの出題です。
create table testa(id integer primary key, val varchar) ;
create function testfunc(x integer) returns varchar language sql as $$
select val from testa where id = x $$ ;
次のSELECT文を実行するために必要な権限として最も適切なものを選びなさい。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2022年7月27日
PostgreSQLではSQL、PL/pgSQLをはじめ、さまざまな言語で関数を定義することができます。例題はSQLで関数を定義しています。
関数を実行するには、その関数の実行権限、つまりEXECUTEがGRANTされている必要があります。
また関数は、その所有者とは関係なく、実行者の権限で実行されます。そのため、関数がテーブルなどのオブジェクトにアクセスする場合には、そのオブジェクトに関する適切なアクセス権限が必要になります。例題の関数はテーブルtestaに対するSELECTだけを実行しているので、testaのSELECTもGRANTされている必要があります。
従って正解はEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.