コンテンツにスキップ

14.2 アカウント管理

アプリケーションと運用作業には別々のアカウントを使います。SYS はユーザーと権限の管理に限定し、 日常のクエリ・ロードには必要最小限の権限を持つアカウントを使用してください。

ユーザーの作成と削除

CREATE USER app_user IDENTIFIED BY 'App#Strong123' PASSWORD POLICY HIGH;

SELECT USER_ID, NAME, PWD_POLICY_LEVEL, VALID_BEFORE
  FROM M$SYS_USERS
 WHERE NAME = 'APP_USER';

ユーザー名は大文字で保存されます。論理データベースへ接続するには、アカウント作成後に 対象データベースの CONNECT を別途付与します。

GRANT CONNECT ON DATABASE factory_a TO app_user;
GRANT SELECT, INSERT ON TABLE factory_a.sys.sensor_log TO app_user;

パスワード変更時は、新しいパスワードとポリシーを同時に指定できます。

ALTER USER app_user IDENTIFIED BY 'App#Changed456' PASSWORD POLICY HIGH;

ユーザー削除前に、実行中のセッション、付与した権限、所有オブジェクトを確認します。 オブジェクトを所有しているユーザーは削除できません。

DROP USER app_user;

SYS と現在接続中の自分のアカウントは削除できません。machsql で別のアカウントに切り替えるには、 CONNECT user/password; で新しいセッションを認証するか、クライアントを再接続します。

アクティブセッションを持つユーザーの削除

他の管理セッションからユーザーを削除しても、そのユーザーで認証済みのセッションは直ちに終了しません。 既存セッションはログイン時のユーザー名と内部 ID を保持しますが、削除されたユーザーは新規接続できず、 M$SYS_USERS にも表示されません。削除前にアクティブセッションを確認し、アプリケーション接続を先に終了します。

Machbase 8.7.0 以降では、既存セッションのユーザーコンテキストを CURRENT_USER と SESSION_USERで確認できます。

パスワードポリシー

ポリシー主な動作
NONE互換性のためのデフォルト。強度・有効期限の制約なし
LOW長さと文字の組み合わせを検査
HIGHLOW の検査、最近のパスワードの再利用制限、有効期間

LOW と HIGH は10文字以上を要求します。大文字・小文字の検査は ENABLE_CASE_SENSITIVE_PASSWORD の 影響を受けます。HIGH は設定時点から90日後を VALID_BEFORE に記録します。

CREATE USER reader_user
  IDENTIFIED BY 'Reader#Strong123'
  PASSWORD POLICY HIGH;

ALTER USER reader_user
  IDENTIFIED BY 'Reader#Changed456'
  PASSWORD POLICY LOW;

ポリシーだけを変更せず、新しいパスワードも指定します。現在のポリシーと有効期限は次で確認します。

SELECT USER_ID, NAME, PWD_POLICY_LEVEL, VALID_BEFORE
  FROM M$SYS_USERS
 ORDER BY USER_ID;

PWD_POLICY_LEVEL0=NONE1=LOW2=HIGH です。パスワードをアプリケーションに直接 記述せず、運用環境のシークレット管理手段を使ってください。全構文は USER/AUTH 構文を参照してください。

最終更新日