許可オブジェクトは、誰が外部オブジェクト ストアにアクセスできるかを制御するために使用されます。
許可オブジェクトを作成する前に、データにアクセスするために、Advanced SQL Engineは外部オブジェクト ストアのアクセス権を持つことが必要です。例えば、Amazon S3バケットにアクセスするには、アクセス キーまたはAWS Identity and Access Management (IAM)ユーザーの信頼証明が必要です。Google Cloud Storageバケットにアクセスするには、アクセス キーが必要です。Azureストレージにアクセスするには、アクセス キーまたは共有アクセス署名(SAS)トークンが必要です。信頼証明は、アクセスするオブジェクト ストアで構成されます。
外部ストレージがAdvanced SQL Engineにアクセスを許可したら、適切な信頼証明を使用して許可オブジェクトを設定します。
許可オブジェクト定義で定義者が使用されている場合、許可オブジェクトは複数のユーザー間で共有することができます。呼び出し元を使用する場合、オブジェクトを作成したユーザーのみがそのオブジェクトを使用できます。
説明 | 例 |
---|---|
1人のユーザーが使用する許可オブジェクト | CREATE AUTHORIZATION authorization_object AS INVOKER TRUSTED USER 'YOUR-ACCESS-KEY-ID' PASSWORD 'YOUR-SECRET-ACCESS-KEY'; |
ユーザーのグループによって共有される許可オブジェクト | CREATE AUTHORIZATION authorization_object AS DEFINER TRUSTED USER 'YOUR-ACCESS-KEY-ID' PASSWORD 'YOUR-SECRET-ACCESS-KEY'; |
外部オブジェクト ストア内のパブリック バケットまたはコンテナは、アクセスに信頼証明を必要としません。パブリック バケットまたはコンテナにアクセスするには、USERとPASSWORDに空白文字列を左右の区別がない引用符で囲んで指定します。
CREATE AUTHORIZATION authorization_object
AS DEFINER TRUSTED
USER ''
PASSWORD '';
- まだ実行されていない場合は、他のユーザーに権限を付与できる管理ユーザーとしてAdvanced SQL Engineにログオンします。
- ユーザーに適切な権限を付与します。許可オブジェクトを作成するには、ユーザーには以下の権限が必要です。
- CREATE AUTHORIZATION
- 管理ユーザーとしてログオフします。
- NOS関連コマンドを実行するには、必要な権限を持つユーザーとしてデータベースにログオンします。
- 外部オブジェクト ストアへの信頼証明を使用して、Advanced SQL Engineで許可オブジェクトを作成します。許可オブジェクトを使用する外部テーブルと同じデータベースに作成します。
CREATE AUTHORIZATION DefAuth AS DEFINER TRUSTED USER 'YOUR-ACCESS-KEY-ID' PASSWORD 'YOUR-SECRET-ACCESS-KEY';
または、パブリック バケットにアクセスするには、次のように許可オブジェクトを作成します。
CREATE AUTHORIZATION DefAuth AS DEFINER TRUSTED USER '' PASSWORD '';
前提条件
許可オブジェクトの作成
次のタスク後の例では、許可オブジェクトは外部テーブルにリンクされ、その他の例では関数マッピングで使用されます。