ある特定のEssbaseサーバー、アプリケーションまたはデータベースへのアクセス権を持つすべてのグループをリストします。EssListGroupsに似ていますが、グループ・リスト構造体には、ユーザー・ディレクトリおよび一意のID属性を含められます。
構文
ESS_FUNC_M EssListGroupsInfoEx (
hCtx,
AppName
,
DbName
,
pCount
,
ppGroupList
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル(入力)。 |
AppName |
ESS_STR_T |
アプリケーション名(入力)。NULLの場合は全グループがリストされます。 |
DbName |
ESS_STR_T |
データベース名(入力)。NULLの場合は、アプリケーション内のすべてのデータベースのグループがリストされます。 |
pCount |
ESS_PUSHORT_T |
グループのカウントを受け取る変数のアドレス(出力)。 |
ppGroupList |
ESS_PPGROUPINFOID_T |
割り当てられたグループ情報構造体の配列を受け取るポインタのアドレス(出力)。グループ・リスト構造体には、ユーザー・ディレクトリおよび一意のID属性を含められます。 |
備考
AppNameとDbNameの両方がNULLでない場合、指定されたアプリケーションとデータベースへのアクセス権があるグループのみがリストされます。DbNameがNULLの場合、指定したアプリケーションへのアクセス権を持つグループのみがリストされます。AppNameがNULLの場合、ログオンしているサーバー上のすべてのグループがリストされます。
ppGroupListに対して割り当てられたメモリーは、EssFreeを使用して解放する必要があります。
戻り値
正常終了の場合、グループ数のカウントがpCountに、指定されたアプリケーションおよびデータベースへのアクセス権を持つグループのリストがppGroupListに戻されます。
アクセス
この関数を使用するのに、特別な権限は必要ありません。
例
void DisplayGroupsInfoEx(ESS_GROUPINFOID_T groupInfo)
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_BOOL_T isDefined = ESS_TRUE;
printf("\tUser Name: %s\n", groupInfo.Name);
printf("\tProvider Name: %s\n", groupInfo.ProviderName);
printf("\tIdentity: %s\n", groupInfo.connparam);
printf("\tDescription: %s\n", groupInfo.Description);
printf("\tEMail Identification: %s\n", groupInfo.EMailID);
if (groupInfo.LockedOut)
printf("\tLocked out: Yes\n");
else
printf("\tLocked out: No\n");
if (groupInfo.PwdChgNow)
printf("\tChange the password now: Yes\n");
else
printf("\tChange the password now: No\n");
printf("\tPassword: %s\n", groupInfo.Password);
printf("\tApplication: %s\n", groupInfo.AppName);
printf("\tDatabase: %s\n", groupInfo.DbName);
if (groupInfo.Login)
printf("\tLogged in: Yes\n");
else
printf("\tLogged in: No\n");
switch(groupInfo.Access)
{
case ESS_ACCESS_ADMIN:
printf("\tAccess: %d - ESS_ACCESS_ADMIN\n", groupInfo.Access);
break;
case ESS_ACCESS_APPALL:
printf("\tAccess: %d - ESS_ACCESS_APPALL\n", groupInfo.Access);
break;
case ESS_ACCESS_DBALL:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", groupInfo.Access);
break;
case ESS_ACCESS_APPCREATE:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", groupInfo.Access);
break;
case ESS_ACCESS_APPMANAGE:
printf("\tAccess: %d - ESS_ACCESS_APPMANAGE\n", groupInfo.Access);
break;
case ESS_ACCESS_DBCREATE:
printf("\tAccess: %d - ESS_ACCESS_DBCREATE\n", groupInfo.Access);
break;
case ESS_ACCESS_DBMANAGE:
printf("\tAccess: %d - ESS_ACCESS_DBMANAGE\n", groupInfo.Access);
break;
case ESS_ACCESS_CALC:
printf("\tAccess: %d - ESS_ACCESS_CALC\n", groupInfo.Access);
break;
case ESS_ACCESS_WRITE:
printf("\tAccess: %d - ESS_ACCESS_WRITE\n", groupInfo.Access);
break;
case ESS_ACCESS_READ:
printf("\tAccess: %d - ESS_ACCESS_READ\n", groupInfo.Access);
break;
case ESS_PRIV_USERCREATE:
printf("\tAccess: %d - ESS_PRIV_USERCREATE\n", groupInfo.Access);
break;
case ESS_PRIV_APPCREATE:
printf("\tAccess: %d - ESS_PRIV_APPCREATE\n", groupInfo.Access);
break;
case ESS_PRIV_APPMANAGE:
printf("\tAccess: %d - ESS_PRIV_APPMANAGE\n", groupInfo.Access);
break;
case ESS_PRIV_APPLOAD:
printf("\tAccess: %d - ESS_PRIV_APPLOAD\n", groupInfo.Access);
break;
case ESS_PRIV_DBCREATE:
printf("\tAccess: %d - ESS_PRIV_DBCREATE\n", groupInfo.Access);
break;
case ESS_PRIV_DBMANAGE:
printf("\tAccess: %d - ESS_PRIV_DBMANAGE\n", groupInfo.Access);
break;
case ESS_PRIV_DBLOAD:
printf("\tAccess: %d - ESS_PRIV_DBLOAD\n", groupInfo.Access);
break;
case ESS_PRIV_CALC:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", groupInfo.Access);
break;
case ESS_PRIV_WRITE:
printf("\tAccess: %d - ESS_PRIV_WRITE\n", groupInfo.Access);
break;
case ESS_PRIV_READ:
printf("\tAccess: %d - ESS_PRIV_READ\n", groupInfo.Access);
break;
case ESS_PRIV_NONE:
printf("\tAccess: %d - ESS_PRIV_NONE\n", groupInfo.Access);
break;
default:
printf("\tAccess: Unknown\n");
}
switch(groupInfo.MaxAccess)
{
case ESS_ACCESS_ADMIN:
printf("\tMax Access: %d - ESS_ACCESS_ADMIN\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_APPALL:
printf("\tMax Access: %d - ESS_ACCESS_APPALL\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_DBALL:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_APPCREATE:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_APPMANAGE:
printf("\tMax Access: %d - ESS_ACCESS_APPMANAGE\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_DBCREATE:
printf("\tMax Access: %d - ESS_ACCESS_DBCREATE\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_DBMANAGE:
printf("\tMax Access: %d - ESS_ACCESS_DBMANAGE\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_CALC:
printf("\tMax Access: %d - ESS_ACCESS_CALC\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_WRITE:
printf("\tMax Access: %d - ESS_ACCESS_WRITE\n", groupInfo.MaxAccess);
break;
case ESS_ACCESS_READ:
printf("\tMax Access: %d - ESS_ACCESS_READ\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_USERCREATE:
printf("\tMax Access: %d - ESS_PRIV_USERCREATE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_APPCREATE:
printf("\tMax Access: %d - ESS_PRIV_APPCREATE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_APPMANAGE:
printf("\tMax Access: %d - ESS_PRIV_APPMANAGE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_APPLOAD:
printf("\tMax Access: %d - ESS_PRIV_APPLOAD\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_DBCREATE:
printf("\tMax Access: %d - ESS_PRIV_DBCREATE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_DBMANAGE:
printf("\tMax Access: %d - ESS_PRIV_DBMANAGE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_DBLOAD:
printf("\tMax Access: %d - ESS_PRIV_DBLOAD\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_CALC:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_WRITE:
printf("\tMax Access: %d - ESS_PRIV_WRITE\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_READ:
printf("\tMax Access: %d - ESS_PRIV_READ\n", groupInfo.MaxAccess);
break;
case ESS_PRIV_NONE:
printf("\tMax Access: %d - ESS_PRIV_NONE\n", groupInfo.MaxAccess);
break;
default:
printf("\tMax Access: Unknown\n");
}
printf("\tPassword Expiration in Dates: %d\n",groupInfo.Expiration);
printf("\tFailed Login Attempts Since Then: %d\n", groupInfo.FailCount);
printf("\tLogin ID: %d\n", groupInfo.LoginId);
printf("\tProtocol: %s\n", groupInfo.protocol);
printf("\tConnection Parameter: %s\n", groupInfo.connparam);
printf( "\n");
}
ESS_FUNC_M ESS_ListGroupsInfoEx (ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_USHORT_T count, i;
ESS_PGROUPINFOID_T pGroupList = ESS_NULL;
sts = EssListGroupsInfoEx(hCtx, AppName, DbName, &count, &pGroupList);
printf("EssListGroupsInfoEx sts: %ld\n", sts);
if(!sts)
{
printf("\nNumber of group(s): %d\n", count);
for(i = 0; i < count; i++)
{
DisplayGroupsInfoEx(pGroupList[i]);
}
}
return (sts);
}
関連トピック