データベースへのユーザーのアクセス権情報が含まれている、ユーザーのデータベース・アクセス構造体のリストを取得します。
構文
ESS_FUNC_M EssGetDatabaseAccess (
hCtx, UserName, AppName, DbName, pCount, ppUserDb
);
パラメータ | データ型 | 説明 |
---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
UserName |
ESS_STR_T |
ユーザー名。NULLの場合は、指定されたアプリケーションとデータベースのすべてのユーザーをリストします。 |
AppName |
ESS_STR_T |
アプリケーション名。NULLの場合は、指定されたユーザーのアプリケーションとデータベースをすべてリストします。 |
DbName |
ESS_STR_T |
データベース名。NULLの場合は、指定されたユーザーまたはアプリケーションのすべてのデータベースをリストします。 |
pCount |
ESS_PUSHORT_T |
ユーザー・データベース構造体のカウントを受け取る変数のアドレス。 |
ppUserDb |
ESS_USERDB_T、ESS_GROUPDB_T |
割り当てられたユーザー・データベース構造体の配列を受け取るポインタのアドレス。 |
備考
UserName、AppName、DbNameのいずれかがNULLの場合、ワイルドカードとして扱われ、該当するタイプのすべてのアイテムがリストされます。AppNameがNULLの場合、DbNameもNULLとみなされます。これらの引数のうち2つがNULLでもかまいませんが、3つすべてをNULLにすることはできません。
ユーザー・データベース構造体のAccessフィールドは、データベースに対してユーザーに与えられたアクセス権を表します。一方MaxAccessフィールドは、すべてのソースから得られるユーザーの最も高いアクセス権(たとえばグループを介したアクセス権やデフォルトのデータベース・アクセス権など)を表します。
ppUserDbに対して割り当てられたメモリーは、EssFreeを使用して解放する必要があります。
フィルタ・アクセス権限は、ESS_PRIV_DBLOAD権限と同等です。
戻り値
正常終了の場合は、ユーザーとデータベースのカウントがpCountに、ユーザー・データベース構造体のリストがppUserDbに戻されます。
アクセス
この関数を使用するには、独自のデータベース・アクセス情報を取得する場合を除き、呼出し元は指定されたデータベースに対するデータベース設計権限(ESS_PRIV_DBDESIGN)を持っている必要があります。
例
ESS_FUNC_M ESS_GetDatabaseAccess (ESS_HCTX_T hCtx, ESS_HINST_T hInst) { ESS_FUNC_M sts = ESS_STS_NOERR; ESS_STR_T UserName; ESS_STR_T AppName; ESS_STR_T DbName; ESS_USHORT_T Count = 0; ESS_USHORT_T ind; ESS_PUSERDB_T UserDb = NULL; UserName = "Admin"; AppName = "Sample"; DbName = ""; sts = EssGetDatabaseAccess(hCtx, UserName, AppName, DbName, &Count, &UserDb); if(!sts) { if(Count && UserDb) { printf ("\r\n-------Database Access List------- \r\n\r\n"); for (ind = 0; ind < Count; ind++) { printf("User -> %s\r\n",UserDb[ind].UserName); printf("Application -> %s\r\n", UserDb[ind].AppName); printf("Database -> %s\r\n",UserDb[ind].DbName); printf("Access -> %d\r\n",UserDb[ind].Access); printf("MaxAccess -> %d\r\n", UserDb[ind].MaxAccess); printf("FilterName -> %s\r\n", UserDb[ind].FilterName); printf("===================================\r\n"); } EssFree (hInst, UserDb); } else printf ("\r\nDatabase list is empty\r\n\r\n"); } return (sts); }
関連トピック