<budget_name>!ADD_RESOURCE¶
カスタム予算 にオブジェクトを追加します。オブジェクトは 参照 によって追加される必要があります。
構文¶
<budget_name>!ADD_RESOURCE( { '<object_reference>' | <reference_statement> } )
引数¶
'object_reference'
オブジェクトが解決先のシリアライズされた文字列表現。この文字列は SYSTEM$REFERENCE 関数の出力です。
reference_statement
予算に追加するオブジェクトの参照を作成する SYSTEM$REFERENCE ステートメント。
戻り値¶
Successfully added resource to resource group
アクセス制御の要件¶
カスタム予算でこのメソッドを呼び出すには、以下の権限とロールが必要です。
予算インスタンスの ADMIN インスタンスロール を持つロール。
予算インスタンスを含むデータベースとスキーマ上で USAGE 権限を付与されたロール。
追加されるオブジェクト上で APPLYBUDGET 権限を持つロール。
使用上の注意¶
カスタム予算 にはオブジェクトしか追加できません。
SNOWFLAKE データベースの参照は作成できず、予算に追加することもできません。
例¶
オブジェクトの参照を作成し、そのオブジェクトを予算に追加します。
テーブル
t1
の参照を作成します。SELECT SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'APPLYBUDGET');
戻り値:
ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7
スキーマ
budget_db.budget_schema
の予算my_budget
にテーブルt1
を追加します。CALL budget_db.budget_schema.my_budget!ADD_RESOURCE( 'ENT_REF_TABLE_5862683050074_5AEB8D58FB3ACF249F2E35F365A9357C46BB00D7');
SYSTEM $ REFERENCE ステートメントを使用して、オブジェクトを予算に追加します。
スキーマ
budget_db.budget_schema
の予算my_budget
にテーブルt1
を追加します。CALL budget_db.budget_schema.my_budget!ADD_RESOURCE( SELECT SYSTEM$REFERENCE('TABLE', 't2', 'SESSION', 'APPLYBUDGET'));
エラーメッセージ¶
以下のシナリオは、カスタム予算にリソースを追加する際に発生する可能性のある問題のトラブルシューティングに役立ちます。
エラー |
Unknown user-defined function <budget_db>.<budget_schema>.ADD_RESOURCE
|
---|---|
原因 |
このメソッドの呼び出しに使用したロールに ADMIN インスタンスロールがありません。 |
解決策 |
このエラーを解決するには、オブジェクトを予算に追加するために必要なロールと権限を持つロールを使用します。 アクセス制御の要件 をご参照ください。 |
エラー |
002003 (02000): SQL compilation error:
<object_type> '<object_name>' does not exist or not authorized.
|
---|---|
原因 |
このメソッドを呼び出すために使用したロールに、予算に追加しようとしているオブジェクトに対する APPLYBUDGET 権限がありません。 |
解決策 |
このエラーを解決するには、オブジェクトを予算に追加するために必要なロールと権限を持つロールを使用します。 アクセス制御の要件 をご参照ください。 |
エラー |
Uncaught exception of type 'EXPRESSION_ERROR' on line 10 at position 21 :
Privilege 'APPLYBUDGET' is not authorized on the reference object.
|
---|---|
原因 |
SYSTEM $ REFERENCE ステートメントで PRIVILEGE パラメーターを指定せずにオブジェクトの参照を作成しようとしました。 |
解決策 |
オブジェクトの APPLYBUDGET 権限で参照を作成します。 |
エラー |
505001 (55000): Uncaught exception of type 'EXPRESSION_ERROR' on line 10
at position 21 : Specified object does not exist or not authorized for
the reference.
|
---|---|
原因 |
インライン SYSTEM $ REFERENCE ステートメントを使用して SNOWFLAKE データベースをカスタム予算に追加しようとしました。 |
解決策 |
SNOWFLAKE データベースは予算に追加できません。上記の 使用上の注意 をご参照ください。 |