ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MariaDB] 계정관리 - ALTER USER
    IT/etc 2022. 3. 13. 12:55

    계정관리 - ALTER USER

    MariaDB
    MariaDB

     


    ALTER USER 명령문은 기존 MariaDB 계정을 수정합니다. 이를 사용하려면 전역 CREATE USER 권한 또는 mysql 데이터베이스에 대한 UPDATE 권한이 있어야 합니다. read_only 시스템 변수가 활성화된 경우 전역 SUPER 권한도 필요합니다.

    지정된 사용자 계정이 아직 존재하지 않으면 오류가 발생합니다. 오류가 발생하면 ALTER USER 하진 않는 게정을 계속 수정합니다. 수정되지 않은 모든 사용자에 대해 하나의 오류만 생성됩니다.

     

     

    Account Names

    For example : 현재 세션에 로그인한 계정의 패스워드 변경

    ALTER USER CURRENT_USER() IDENTIFIED BY 'mariadb';

     

     

    Password Expiry

    For example : 첫번째 패스워드 만료일 120일 설정, 두 번째 패스워드 만료 없음 설정, 세 번째 시스템 기본값 설정

    ALTER USER 'monty'@'localhost' PASSWORD EXPIRE INTERVAL 120 DAY;
    ALTER USER 'monty'@'localhost' PASSWORD EXPIRE NEVER;
    ALTER USER 'monty'@'localhost' PASSWORD EXPIRE DEFAULT;

     

     

    SHOW CREATE USER : 사용자 암호 만료 상태에 대한 정보를 표시합니다. MySQL과 달리 사용자가 잠금 해제되 있거나 암호 만료가 기본값을 설정돼 경우에는 표시되지 않습니다.

    For example : 

    CREATE USER 'monty'@'localhost' PASSWORD EXPIRE INTERVAL 120 DAY;
    CREATE USER 'konstantin'@'localhost' PASSWORD EXPIRE NEVER;
    CREATE USER 'amse'@'localhost' PASSWORD EXPIRE DEFAULT;
    
    SHOW CREATE USER 'monty'@'localhost';
    +------------------------------------------------------------------+
    | CREATE USER for monty@localhost                                  |
    +------------------------------------------------------------------+
    | CREATE USER 'monty'@'localhost' PASSWORD EXPIRE INTERVAL 120 DAY |
    +------------------------------------------------------------------+
    
    SHOW CREATE USER 'konstantin'@'localhost';
    +------------------------------------------------------------+
    | CREATE USER for konstantin@localhost                       |
    +------------------------------------------------------------+
    | CREATE USER 'konstantin'@'localhost' PASSWORD EXPIRE NEVER |
    +------------------------------------------------------------+
    
    SHOW CREATE USER 'amse'@'localhost';
    +--------------------------------+
    | CREATE USER for amse@localhost |
    +--------------------------------+
    | CREATE USER 'amse'@'localhost' |
    +--------------------------------+

     

     

    비밀번호 만료 시점 확인

    For example : 

    WITH password_expiration_info AS (
      SELECT User, Host,
      IF(
       IFNULL(JSON_EXTRACT(Priv, '$.password_lifetime'), -1) = -1,
       @@global.default_password_lifetime,
       JSON_EXTRACT(Priv, '$.password_lifetime')
      ) AS password_lifetime,
      JSON_EXTRACT(Priv, '$.password_last_changed') AS password_last_changed
      FROM mysql.global_priv
    )
    SELECT pei.User, pei.Host,
      pei.password_lifetime,
      FROM_UNIXTIME(pei.password_last_changed) AS password_last_changed_datetime,
      FROM_UNIXTIME(
       pei.password_last_changed +
       (pei.password_lifetime * 60 * 60 * 24)
      ) AS password_expiration_datetime
      FROM password_expiration_info pei
      WHERE pei.password_lifetime != 0
       AND pei.password_last_changed IS NOT NULL
    UNION
    SELECT pei.User, pei.Host,
      pei.password_lifetime,
      FROM_UNIXTIME(pei.password_last_changed) AS password_last_changed_datetime,
      0 AS password_expiration_datetime
      FROM password_expiration_info pei
      WHERE pei.password_lifetime = 0
       OR pei.password_last_changed IS NULL;
Designed by Tistory.