データベースへのユーザーのアクセス権情報が含まれている、ユーザーのデータベース・アクセス構造体のリストを取得します。
構文
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);
}
関連トピック