Engineer Blog開発者ブログ

2020.11.9

【intra-mart】【SQL】ユーザ別ロール情報の取得

今回ご紹介するのは、intra-mart既存のテーブルより”ユーザ別所属組織情報”を取得する方法になります。

通常、直接検索することは少ないかもしれませんが、覚えておくと便利です。

 

主要となるのは以下のテーブルになります。

 ・IMM_USER      (ユーザ情報)

 ・B_M_ROLE_B      (ロールマスタ)

 ・B_M_ACCOUNT_ROLE_B  (アカウント付与ロール)

 

■実行SQL  ・以下の例では、現在有効なユーザ別ロール情報を取得しています。

SELECT
  IMM_USER.USER_CD                       -- ユーザコード
  , IMM_USER.USER_NAME                   -- ユーザ名
  , B_M_ACCOUNT_ROLE_B.ROLE_ID           -- ロールID
  , B_M_ROLE_B.ROLE_NAME                 -- ロール名
  , B_M_ROLE_I.DISPLAY_NAME              -- (ロール)画面表示名
  , IMM_USER.START_DATE                  -- (ユーザ)有効期間開始日
  , IMM_USER.END_DATE                    -- (ユーザ)有効期間終了日
  , B_M_ACCOUNT_ROLE_B.VALID_START_DATE  -- (ロール)有効期間開始日
  , B_M_ACCOUNT_ROLE_B.VALID_END_DATE    -- (ロール)有効期間終了日
FROM
  IMM_USER 
  LEFT OUTER JOIN B_M_ACCOUNT_ROLE_B 
    ON IMM_USER.USER_CD = B_M_ACCOUNT_ROLE_B.USER_CD 
  INNER JOIN B_M_ROLE_I 
    ON B_M_ACCOUNT_ROLE_B.ROLE_ID = B_M_ROLE_I.ROLE_ID 
  INNER JOIN B_M_ROLE_B 
    ON B_M_ACCOUNT_ROLE_B.ROLE_ID = B_M_ROLE_B.ROLE_ID 
WHERE
  SYSDATE BETWEEN IMM_USER.START_DATE AND IMM_USER.END_DATE 
  AND IMM_USER.LOCALE_ID = 'ja'
  AND SYSDATE BETWEEN B_M_ACCOUNT_ROLE_B.VALID_START_DATE AND B_M_ACCOUNT_ROLE_B.VALID_END_DATE 
  AND B_M_ROLE_I.LOCALE_ID = 'ja'

他にも関連するテーブルはありますが、探す場合は「IMM_USER_○○」や「B_M_ROLE_○○」で調べてみて下さい。

また、intra-martの製品情報サイトにてintra-mart Accel Platform (iAP) のテーブル定義情報も公開されていますので、

こちらから調べてみるのも良いかもしれません。

 

それではまた次回。。。(^^)/~~

 

Contact
お問い合わせ

電話番号0120 - 889 - 236
受付時間:平日 9:00-18:00