数字のみのユーザ IDを作成しようとするとエラーとなり、作成できない
search cancel

数字のみのユーザ IDを作成しようとするとエラーとなり、作成できない

book

Article ID: 139203

calendar_today

Updated On:

Products

CA Identity Manager

Issue/Introduction

数字のみを使⽤したユーザ ID:000001を作成しようとした際に以下のエラーが発⽣し、ユーザが作成できません。どのような対処が必要でしょうか。
Error: User id 000001 is a duplicate.

Environment

Release: r12.6

Component: CA Identity Manager

Resolution

CA Identity Managerでは、ユーザを作成する際に⼊⼒したユーザ IDをtblUsers.loginidへ格納し、
そのユーザ IDに対して数字のみで構成される内部ID: tblUsers.idを付与します。

新規ユーザを作成する際にはtblUsers.loginidとtblUsers.idに重複するものが存在していないか確認し、
存在している場合はエラーとなります。

数字のみのユーザIDを作成する場合、重複確認の際に先頭から付与された0は除外されますので、
例えば000001は1として処理され、tblUsers.idに1が存在する場合はエラーとなり、ユーザを作成することができません。
※本事象は今後リリースされるメジャーバージョンで修正される予定です。


数字のみのユーザIDで運⽤をご検討の場合は、先頭にアルファベットを付与いただくか、
0以外の数字で始まるユーザIDを使⽤するなどの回避策をご検討ください。

また、tblUsers.idで割り当てる値をユーザIDの使⽤範囲外の値に変更することによって、
本件を回避することが可能です。参考までにユーザストアとしてoracleを使⽤している環境で
tblUsers.idの値を変更する⼿順をご紹介します。


==(例:ユーザストアにoracleを使⽤している環境でtblUsers.idの値を変更する⼿順)==
[既存環境への適⽤]
tblusers.idで割り当てるID番号を⼤きな値に変更するため、以下のクエリを実⾏します。
注意:tblUsers.idで使⽤可能な上限値は” 2,147,483,647”です。


alter sequence tblusersincrementseq increment by x; (xはユーザ IDと重ならない範囲の値を指定します。)
select tblusersincrementseq.nextval from dual;
select tblusersincrementseq.currval from dual;
alter sequence tblusersincrementseq increment by 1;

[新規環境への適⽤]
ユーザストアの作成後、ユーザを作成する前に以下のクエリを実⾏します。
1. ユーザストア(テーブル構成など)の作成
2. 以下のクエリを実⾏し、tblusers.idの値を変更
alter sequence tblusersincrementseq increment by X; (xはユーザIDと重ならない範囲の値を指定します。)
select tblusersincrementseq.nextval from dual;
select tblusersincrementseq.currval from dual;
alter sequence tblusersincrementseq increment by 1;
3. 組織、ユーザなどの作成

[設定例]
新規環境作成時に、tblUsers.idを500001から割り当てるように変更
1. ユーザストアの作成
2. 以下のクエリを実⾏
alter sequence tblusersincrementseq increment by 499999;
select tblusersincrementseq.nextval from dual;
select tblusersincrementseq.currval from dual;
alter sequence tblusersincrementseq increment by 1;
3. 組織、ユーザなどの作成
=======================================================================