ユーザー管理

SQL CLIを使用してOracle NoSQL Databaseでユーザーを作成、変更または削除できます。SQL CLIでは、ユーザーを操作するためのコマンドは、DDL APIを介してSQL形式で公開されます。SQL CLIを起動するには、SQLシェルの起動を参照してください。特定のユーザー・アカウントに関する情報を表示することも、登録済ユーザーのサマリー・リストを取得することもできます。詳細は、各ユーザー管理操作を説明した次の各項を参照してください。

すべてのユーザー・パスワードは、パスワード・セキュリティ・ポリシーに従う必要があります。詳細は、パスワードの複雑度ポリシーを参照してください。

ユーザーの作成

ユーザーを作成するには、次のコマンドを使用します。

CREATE USER user_name 
 (IDENTIFIED BY password
  [PASSWORD EXPIRE | PASSWORD LIFETIME duration_time_unit])
  [ACCOUNT LOCK|UNLOCK] 
  [ADMIN] 

説明:

  • user_name

    ユーザーを識別するために名前を割り当てます。Kerberosユーザーを作成する場合、user_nameは、サイトのキー配布センター(KDC)で作成された完全修飾プリンシパル名と一致する必要があります。ユーザー名は、表名と同様にIDです。各IDの正式な定義は、次のとおりです。
    ALPHA (ALPHA | DIGIT | UNDER)* ;
    各IDは、文字(a-zA-Z)で開始し、その後に他の文字、数値(0 - 9)およびアンダースコア(_)を続ける必要があります。含まれる文字数に対するIDのサイズ制限はありません。IDは、その長さに対応するために必要なメモリーと同じ文字数で構成できます。実際には、ほとんどのサイトには名前の長さに関する推奨がありますが、Oracle NoSQL Databaseによってチェックされることも強制されることもありません。

    既存ユーザーの認証タイプは変更できないため、Kerberosユーザーの名前は、既存のユーザーとは異なる必要があります。

  • IDENTIFIED BY "password"

    Oracle NoSQL Databaseで、割り当てたパスワードにより新しいユーザーを認証することを示します。新規ユーザーはそのパスワードを使用してログオンする必要があります。

    ノート:

    ユーザー・パスワードは、引用符で囲んで指定する必要があります(たとえば、"password")。

  • PASSWORD EXPIRE

    割り当てられているパスワードがすでに期限切れであることを示します。この設定により、ユーザーは、最初にログインするとすぐに指定されたパスワードを変更するよう強制されます。Oracle NoSQL Databaseにアクセスする前に、選択したパスワード(すべてのサイト要件を満たすもの)を入力する必要があります。

  • PASSWORD LIFETIME {INT duration_time_unit}

    割り当てられているパスワードを使用するために必要なパスワード期間の単位を示します。次のように、整数のtime_unitを入力します。
    
    time_unit : (SECONDS | MINUTES | HOURS | DAYS) 
    

    いずれかの時間単位でゼロ(0)を使用することにより、パスワードに有効期限がないことを指定します。負の値を入力すると、エラーが発生します。PASSWORD LIFETIME time_unitを指定しない場合は、グローバル構成の有効期間が使用されます。このパラメータのデフォルトは180日です。

    次に、新しいユーザーKateを作成する基本的な例を示します。IDENTIFIED BYで、Kateに割り当てるパスワード(この場合には"password")を指定し、PASSWORD LIFETIME期間で、30 DAYSとして整数の時間単位を指定しています。

    sql->create USER Kate IDENTIFIED BY "<password>" PASSWORD LIFETIME:30 DAYS;
  • ACCOUNT {LOCK | UNLOCK}

    ユーザーのアカウントをロックしてアクセスを無効にするには、ACCOUNT LOCKを指定します。管理者は、このオプションを使用してユーザーからアクセス権を削除できますが、アカウントは保持されます。その後、必要に応じて、ACCOUNT UNLOCKを指定してユーザー・アカウントを復元します。

  • ADMIN Clause

    ユーザーにsysadminロールを自動的に付与するには、ADMINを指定します。

ユーザーの変更

ユーザーを変更するには、次のコマンドを使用します。

ALTER USER user_name [IDENTIFIED BY password
[RETAIN CURRENT PASSWORD]] [CLEAR RETAINED PASSWORD] [PASSWORD EXPIRE]
[PASSWORD LIFETIME duration] [ACCOUNT UNLOCK|LOCK] 

説明:

  • user_name

    変更するユーザーの名前。Kerberosユーザーを指定する場合は、ACCOUNT句オプションのみを変更できます。

  • IDENTIFIED Clause

    ユーザーに新しいパスワードを指定する場合は、BY passwordを指定します。

  • RETAIN CURRENT PASSWORD

    BY password句と一緒に使用します。指定した場合、ユーザーに定義された現在のパスワードが、限られた期間(デフォルトでは24時間)またはパスワードが明示的に消去されるまで、有効な代替パスワードとして記憶されます。一度に保持できる代替パスワードは1つのみです。このオプションにより、アプリケーションの操作に影響を与えずに引き続き実行しながら、パスワードを変更できます。

  • CLEAR RETAINED PASSWORD Clause

    現在の代替保持パスワードを消去します。

  • PASSWORD EXPIRE

    ユーザーのパスワードをただちに失効させ、このユーザーまたはsysadminロールを持つユーザーが失効後にデータベースにログインしようとするときパスワードの変更が必須になります。

  • PASSWORD LIFETIME duration

    現在のパスワードを認証に使用できる期間を指定します。

    duration: [0-9]+ unit
    unit: S | M | H | SECONDS | MINUTES | HOURS | DAYS 

    PASSWORD LIFETIMEに0の時間単位を指定すると、パスワードが有効期限なしになります。

  • ACCOUNT Clause

    ユーザーのアカウントをロックしてアクセスを無効にするACCOUNT LOCKを指定します。ユーザーを有効にするには、ACCOUNT UNLOCKを指定します。

既存ユーザーのパスワードを更新する場合、新しいパスワードはパスワード・セキュリティ・ポリシーに準拠する必要があります。詳細は、パスワードの複雑度ポリシーを参照してください。

ユーザーの削除

DROP USER user_name [CASCADE]

DROP USER user_nameコマンドを使用して、指定したユーザー・アカウントを削除します(ユーザーが自分自身を削除することはできません)。ここで、user_nameは、削除するユーザーの名前です。

ユーザーに既存の表がある場合、最初に各表を削除してから、ユーザーを削除します。または、オプションのCASCADEオプションを使用して、ユーザーとともにユーザー表を削除します。

たとえば:

sql->drop USER Kate cascade;

ユーザーの削除は即座に発生します。ユーザーが所有する表に別のユーザーがアクセスしていた場合、これらの表に対するDML操作やDDL操作はできなくなります。

ユーザー・ステータス

SHOW [AS JSON] USERS| USER user_name

たとえば:


sql->show users;
user:KVStoreUser[id=u3 name=Alice]
user:KVStoreUser[id=u2 name=Kate]
user:KVStoreUser[id=u1 name=Ken]

ノート:

ユーザーID値は、各ユーザーを追加するたびに順番に増分されます。これらは、各ユーザーが一意になるようにするための内部メカニズムです。

特定のユーザーの詳細情報を表示するには:

sql-> show user Kate;
KVStoreUser[id=u2 name=Kate] enabled=true auth-type=LOCAL current-passwd-expiration=2026-05-04 11:20:56 UTC retain-passwd=inactive granted-roles=[public, readwrite]

ユーザー・ログイン

-username <user>または-security <path to security file>のいずれかの引数を使用して、SQL CLIにログインできます。SQLクライアントへのログインの詳細は、SQLシェルの起動を参照してください。