Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.10.9 SQLTablePrivileges,SQLTablePrivilegesW

〈この項の構成〉

(1) 機能

テーブルの一覧と各テーブルに関連づけられたアクセス権限の一覧を返します。SQL文の結果セットの形式で出力します。

(2) 形式

(3) 引数

StatementHandle

ステートメントハンドルを指定します。

この関数を実行する前にSQLAllocHandle*OutputHandlePtrで出力された値を指定します。

CatalogName

テーブルのカタログ名を指定します。

ただし,指定しても無視されます。この関数を使用する際は,空の文字列("")またはNULLを指定してください。

NameLength1

*CatalogNameの長さ※1,またはSQL_NTSを指定します。

ただし,指定しても無視されます。この関数を使用する際は,0を指定してください。

SchemaName

テーブルのスキーマ名に対するパターン文字列※2を指定します。NULLを指定した場合は,すべてのスキーマ名を対象とします。

NameLength2

*SchemaNameの長さ※1,またはSQL_NTSを指定します。0を指定した場合は,SchemaNameの指定による絞り込みを行いません。

TableName

テーブル名に対するパターン文字列※2を指定します。NULLを指定した場合は,すべてのテーブル名を対象とします。

NameLength3

*TableNameの長さ※1,またはSQL_NTSを指定します。0を指定した場合は,TableNameの指定による絞り込みを行いません。

注※1

長さの単位は,SQLTablePrivilegesの場合はバイト長,SQLTablePrivilegesWの場合は文字数となります。

注※2

パターン文字列中に指定できる特殊文字については,「表16‒12 パターン文字列中に指定できる特殊文字」を参照してください。

(4) 戻り値

SQL_SUCCESSSQL_SUCCESS_WITH_INFOSQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

SQLTablePrivilegesまたはSQLTablePrivilegesWを実行すると結果セットが作成されます。返却される結果セットの形式を次に示します。

表16‒18 返却される結果セットの形式

列番号

列名

列の意味

1

Varchar

TABLE_CAT

カタログ名

常にナル値を返します。

2

Varchar

TABLE_SCHEM

スキーマ名

3

Varchar

TABLE_NAME

表名

4

Varchar

GRANTOR

アクセス権限の付与者

5

Varchar

GRANTEE

アクセス権限の被付与者

6

Varchar

PRIVILEGE

許可されているアクセス権限

  • "SELECT"SELECT権限

  • "INSERT"INSERT権限

  • "UPDATE"UPDATE権限

  • "DELETE"DELETE権限

  • "TRUNCATE"TRUNCATE権限

  • "REFERENCES"REFERENCES権限

  • "IMPORT TABLE"IMPORT TABLE権限

  • "REBUILD INDEX"REBUILD INDEX権限

  • "GET COSTINFO"GET COSTINFO権限

  • "EXPORT TABLE"EXPORT TABLE権限

  • "MERGE CHUNK"MERGE CHUNK権限

  • "CHANGE CHUNK COMMENT"CHANGE CHUNK COMMENT権限

  • "CHANGE CHUNK STATUS"CHANGE CHUNK STATUS権限

  • "ARCHIVE CHUNK"ARCHIVE CHUNK権限

  • "UNARCHIVE CHUNK"UNARCHIVE CHUNK権限

7

Varchar

IS_GRANTABLE

アクセス権限の被付与者が,別のHADBユーザにアクセス権限を与えることができるかどうかを返します。

  • "YES":別のHADBユーザにアクセス権限を与えられます。

  • "NO":別のHADBユーザにアクセス権限を与えられません。

(5) SQLSTATE

この関数では次のSQLSTATEを返します。

SQLSTATE

説明

備考

返却

01000

一般警告

×

08S01

通信リンク失敗

×

24000

無効なカーソル状態

カーソルがオープンしている状態のときに実行されました。

40001

直列化の失敗

×

40003

ステートメントの完了が不明

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

×

HY010

関数シーケンスエラー

HY013

メモリ管理エラー

×

HY090

無効な文字列長または無効なバッファ長

名前の長さを格納する引数のどれかの値が,対応する名前の最大長を超えました。

HY117

接続がサスペンド中

×

HYC00

オプション機能は実装されていない

×

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

ドライバはこの関数をサポートしていない

×

IM017

非同期ポーリングが不正

×

IM018

非同期実行が未完了

×

(凡例)

○:HADB ODBCドライバが返すことがあるSQLSTATEです。

×:HADB ODBCドライバが返さないSQLSTATEです。

−:なし。

(6) 注意事項

この関数を実行したHADBユーザが持っている権限によって,取得できる情報が変わります。権限と取得できる情報の対応については,マニュアルHADB システム構築・運用ガイドHADBユーザが参照できるディクショナリ表とシステム表の範囲を参照してください。