본문 바로가기
Programming/MariaDB

Maria DB 이론_ 02. 사용자

by yoon9i 2024. 3. 6.
/*
    <사용자>

    ◎ 사용자(User)는 DBMS 에 접속하여 데이터베이스 구조 및 테이블, 데이터 등을 조작하고 조회할 수 있는 주체를 의미한다.
    ◎ 사용자의 구조는 다음과 같다.

        [사용자 이름]@[원격 호스트]

        - 사용자 이름 : 사용자이름
        - 원격 호스트 : 로그인하는 사용자 '사용자이름'을 이용하여 본 DBMS 서버에 접속할 수 있는 원격 호스트를 의미한다.
                     이 값이 localhost 인 경우 원격 접속이 제한된 계정이라는 의미이다.



    <사용자 만들기>

    ◎ 새로운 사용자를 만들기 위해 아래와 같이 명령한다.

        CREATE USER `사용자 이름`@`원격 호스트` IDENTIFIED BY '비밀번호';

        위에서 사용자 이름과 원격 호스트는 백틱(`) 으로, 비밀번호는 홑따옴표(') 로 감싼것에 주의한다.



    <조회하기>

    ◎ 현재 존재하는 사용자를 확인하기 위해 아래와 같이 명령한다.

        SELECT `user`,`host` FROM `mysql`.`user`;



    <수정하기>

    ◎ 기존 사용자의 비밀번호를 수정하기 위해 아래와 같이 명령한다.

        ALTER USER `사용자이름`@`원격호스트` IDENTIFIED BY '새로운 비밀번호';



    <삭제하기>

    ◎ 기존 사용자를 삭제하기 위해 아래와 같이 명령한다.

        DROP USER `사용자이름`@`원격호스트`;


    <권한 부여하기>

    ◎ 존재하는 사용자에게 특정 스키마와 테이블에 대한 권한을 부여하기 위해 아래와 같이 명령한다.

        GRANT [ALL|부여할 권리,...] ON [대상 스키마|*].[대상 테이블|*] TO `대상 사용자 이름`@`대상 사용자 원격 호스트`;

        - 모든 권한을 부여하기 위해 ALL 이라는 키워드를 사용한다.
        - 특정 권한만 골라서 부여하기 위해 콤마(,)로 구분하여 여러 권한을 부여할 수 있다.
          가령, INSERT, SELECT, UPDATE 권한만 부여하기 위해 INSERT, SELECT, UPDATE 로 명기한다.

        - 단, 모든 권한(ALL) 에 GRANT 명령을 실행하기 위한 권한은 포함되어 있지 않음으로 어떠한 사용자로 하여 GRANT 명령을
          실행할수 있게 하기 위해 아래와 같이 명령한다.

        GRANT [ALL|부여할 권리,...] ON [대상 스키마|*].[대상 테이블|*] TO `대상 사용자 이름`@`대상 사용자 원격 호스트`
        WITH GRANT OPTION;



    <권한 회수하기>

    ◎ 존재하는 사용자로부터 특정 스키마와 테이블에 대한 권한을 회수하기 위해 아래와 같이 명령한다.

        REVOKE [ALL|회수할 권한,...] ON [대상 스키마|*].[테이블|*] FROM `대상 사용자 이름`@`대상 사용자 원격 호스트`;

        만약, 어떠한 사용자가 GRANT 권한을 가지고 있고 이를 회수하기 위해서는 아래와 같이 명령한다.

        REVOKE [ALL|[[GRANT OPTION]?회수할 권한,...]] ON [대상 스키마|*].[테이블|*]
        FROM `대상 사용자 이름`@`대상 사용자 원격 호스트`;

        가령, study@localhost 사용자로 부터 DROP 과 GRANT 권한을 회수하기 위해 아래와 같이 명령한다.

        REVOKE DROP, GRANT OPTION ON *.* FROM `study`@`localhost`;



    <권한 다시 불러오기>

    ◎  부여하거나 회수한 권한을 즉시 적용하기 위해 아래와 같이 명령한다. 아래 명령어를 사용하지 않고 변경 사항을 적용하기 위해서는 서버를
       다시 시작해야 한다.

        FLUSH PRIVILEGES;



    <권한 확인하기>

    ◎ 현재 로그인한 사용자 혹은 다른 사용자가 가지고 있는 권한을 확인하기 위해 사용한다.

        SHOW GRANTS;

        다른 사용자의 권한을 확인하기 위해서는 사용자 이름 및 원격 호스트를 아래와 같이 명시한다.

        SHOW GRANTS FOR `사용자 이름`@`원격 호스트`;





           

*/

'Programming > MariaDB' 카테고리의 다른 글

Maria DB 이론_ 05. 레코드  (0) 2024.03.06
Maria DB 이론_ 04. 테이블 및 열  (0) 2024.03.06
Maria DB 이론_ 03. 스키마  (0) 2024.03.06
Maria DB 이론_ 1. 서론  (0) 2024.03.06
MariaDB 이론_ 0.기타  (0) 2024.03.06