EssGetDatabaseAccess

データベースへのユーザーのアクセス権情報が含まれている、ユーザーのデータベース・アクセス構造体のリストを取得します。

構文

            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

割り当てられたユーザー・データベース構造体の配列を受け取るポインタのアドレス。

備考

戻り値

正常終了の場合は、ユーザーとデータベースのカウントが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);      
}
      

関連トピック