現在ログインしているサーバーまたはアプリケーションに接続されているユーザーをすべてリストします。EssListConnectionsに似ていますが、ユーザー・ディレクトリにホストされているユーザーが含まれます。
構文
ESS_FUNC_M EssListConnectionsEx (
hCtx
,
pCount
,
ppUserList
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル(入力)。 |
pCount |
ESS_PUSHORT_T |
ユーザーのカウントを受け取る変数のアドレス(出力)。 |
ppUserList |
ESS_PPUSERINFOID_T |
ユーザー情報構造体の配列へのポインタ(出力)。情報構造体には、ユーザー・ディレクトリおよび一意のID属性を含められます。 |
備考
pCountには、ppUserList配列内の要素の数が含まれます。
hCtxがスーパーバイザの場合、ppUserListはサーバーにログインしているユーザーのリストになります。hCtxがアプリケーション・デザイナの場合、ppUserListはhCtxがアプリケーション・デザイナになっているアプリケーションに接続しているユーザーのリストになります。
ppUserListに割り当てられたバッファを解放するには、EssFreeを使用します。
戻り値
成功の場合、0が戻されます。
アクセス
この関数を使用するには、呼出し元がスーパーバイザまたはアプリケーション・デザイナ権限を持っている必要があります。
例
void DisplayUserInfoID2(ESS_USERINFOID_T userInfo)
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_BOOL_T isDefined = ESS_TRUE;
printf("\tUser Name: %s\n", userInfo.Name);
printf("\tProvider Name: %s\n", userInfo.ProviderName);
printf("\tConnparam: %s\n", userInfo.connparam);
printf("\tDescription: %s\n", userInfo.Description);
printf("\tEMail Identification: %s\n", userInfo.EMailID);
if (userInfo.LockedOut)
printf("\tLocked out: Yes\n");
else
printf("\tLocked out: No\n");
if (userInfo.PwdChgNow)
printf("\tChange the password now: Yes\n");
else
printf("\tChange the password now: No\n");
printf( "\tConnected Application: %s\n", userInfo.AppName);
printf( "\tConnected Database: %s\n", userInfo.DbName);
if (userInfo.Login)
printf("\tLogged in: Yes\n");
else
printf("\tLogged in: No\n");
switch(userInfo.Access)
{
case ESS_ACCESS_ADMIN:
printf("\tAccess: %d - ESS_ACCESS_ADMIN\n", userInfo.Access);
break;
case ESS_ACCESS_APPALL:
printf("\tAccess: %d - ESS_ACCESS_APPALL\n", userInfo.Access);
break;
case ESS_ACCESS_DBALL:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", userInfo.Access);
break;
case ESS_ACCESS_APPCREATE:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", userInfo.Access);
break;
case ESS_ACCESS_APPMANAGE:
printf("\tAccess: %d - ESS_ACCESS_APPMANAGE\n", userInfo.Access);
break;
case ESS_ACCESS_DBCREATE:
printf("\tAccess: %d - ESS_ACCESS_DBCREATE\n", userInfo.Access);
break;
case ESS_ACCESS_DBMANAGE:
printf("\tAccess: %d - ESS_ACCESS_DBMANAGE\n", userInfo.Access);
break;
case ESS_ACCESS_CALC:
printf("\tAccess: %d - ESS_ACCESS_CALC\n", userInfo.Access);
break;
case ESS_ACCESS_WRITE:
printf("\tAccess: %d - ESS_ACCESS_WRITE\n", userInfo.Access);
break;
case ESS_ACCESS_READ:
printf("\tAccess: %d - ESS_ACCESS_READ\n", userInfo.Access);
break;
case ESS_PRIV_USERCREATE:
printf("\tAccess: %d - ESS_PRIV_USERCREATE\n", userInfo.Access);
break;
case ESS_PRIV_APPCREATE:
printf("\tAccess: %d - ESS_PRIV_APPCREATE\n", userInfo.Access);
break;
case ESS_PRIV_APPMANAGE:
printf("\tAccess: %d - ESS_PRIV_APPMANAGE\n", userInfo.Access);
break;
case ESS_PRIV_APPLOAD:
printf("\tAccess: %d - ESS_PRIV_APPLOAD\n", userInfo.Access);
break;
case ESS_PRIV_DBCREATE:
printf("\tAccess: %d - ESS_PRIV_DBCREATE\n", userInfo.Access);
break;
case ESS_PRIV_DBMANAGE:
printf("\tAccess: %d - ESS_PRIV_DBMANAGE\n", userInfo.Access);
break;
case ESS_PRIV_DBLOAD:
printf("\tAccess: %d - ESS_PRIV_DBLOAD\n", userInfo.Access);
break;
case ESS_PRIV_CALC:
printf("\tAccess: %d - ESS_ACCESS_DBALL\n", userInfo.Access);
break;
case ESS_PRIV_WRITE:
printf("\tAccess: %d - ESS_PRIV_WRITE\n", userInfo.Access);
break;
case ESS_PRIV_READ:
printf("\tAccess: %d - ESS_PRIV_READ\n", userInfo.Access);
break;
case ESS_PRIV_NONE:
printf("\tAccess: %d - ESS_PRIV_NONE\n", userInfo.Access);
break;
default:
printf("\tAccess: Unknown\n");
}
switch(userInfo.MaxAccess)
{
case ESS_ACCESS_ADMIN:
printf("\tMax Access: %d - ESS_ACCESS_ADMIN\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_APPALL:
printf("\tMax Access: %d - ESS_ACCESS_APPALL\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_DBALL:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_APPCREATE:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_APPMANAGE:
printf("\tMax Access: %d - ESS_ACCESS_APPMANAGE\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_DBCREATE:
printf("\tMax Access: %d - ESS_ACCESS_DBCREATE\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_DBMANAGE:
printf("\tMax Access: %d - ESS_ACCESS_DBMANAGE\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_CALC:
printf("\tMax Access: %d - ESS_ACCESS_CALC\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_WRITE:
printf("\tMax Access: %d - ESS_ACCESS_WRITE\n", userInfo.MaxAccess);
break;
case ESS_ACCESS_READ:
printf("\tMax Access: %d - ESS_ACCESS_READ\n", userInfo.MaxAccess);
break;
case ESS_PRIV_USERCREATE:
printf("\tMax Access: %d - ESS_PRIV_USERCREATE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_APPCREATE:
printf("\tMax Access: %d - ESS_PRIV_APPCREATE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_APPMANAGE:
printf("\tMax Access: %d - ESS_PRIV_APPMANAGE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_APPLOAD:
printf("\tMax Access: %d - ESS_PRIV_APPLOAD\n", userInfo.MaxAccess);
break;
case ESS_PRIV_DBCREATE:
printf("\tMax Access: %d - ESS_PRIV_DBCREATE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_DBMANAGE:
printf("\tMax Access: %d - ESS_PRIV_DBMANAGE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_DBLOAD:
printf("\tMax Access: %d - ESS_PRIV_DBLOAD\n", userInfo.MaxAccess);
break;
case ESS_PRIV_CALC:
printf("\tMax Access: %d - ESS_ACCESS_DBALL\n", userInfo.MaxAccess);
break;
case ESS_PRIV_WRITE:
printf("\tMax Access: %d - ESS_PRIV_WRITE\n", userInfo.MaxAccess);
break;
case ESS_PRIV_READ:
printf("\tMax Access: %d - ESS_PRIV_READ\n", userInfo.MaxAccess);
break;
case ESS_PRIV_NONE:
printf("\tMax Access: %d - ESS_PRIV_NONE\n", userInfo.MaxAccess);
break;
default:
printf("\tMax Access: Unknown\n");
}
printf("\tPassword Expiration in Dates: %d\n",userInfo.Expiration);
//EssSdCTime(NULL, userInfo.LastLogin, sizeof(time_string), time_string);
//printf("\tLast Successful Login: %s\n", time_string);
printf("\tFailed Login Attempts Since Then: %d\n", userInfo.FailCount);
printf("\tLogin ID: %ld\n", userInfo.LoginId);
printf( "\n");
}
ESS_FUNC_M ESS_ListUserConnectionsEx (ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_STS_T sts = ESS_STS_NOERR;
ESS_HCTX_T hLocalCtx1;
ESS_HCTX_T hLocalCtx2;
ESS_USHORT_T usercount, i = 0;
ESS_PUSERINFOID_T userInfo = ESS_NULL;
ESS_USHORT_T Items;
ESS_PAPPDB_T pAppsDbs = ESS_NULL;
usercount = 0;
memset(&userInfo, '\0', sizeof(userInfo));
sts = EssListConnectionsEx(hCtx, &usercount, &userInfo);
printf("EssListConnectionsEx sts: %ld\n", sts);
if(!sts)
{
printf("\nConnection count(s): %d\n", usercount);
for(i = 0; i < usercount; i++)
{
DisplayUserInfoID2(userInfo[i]);
}
}
return(sts);
}