SQL/sql 문법(mysql, mariaDB)

MariaDB) 사용자 계정 생성 및 권한 부여

읽히는 블로그 2024. 5. 22. 16:59

▤ 목차

     

    ✔ 사용자 계정 만들기

    ❓계정 생성

    MariaDB(MySQL)을 설치하면 가장 기본적으로 설정된 계정은 root 계정이다.
    root 계정의 경우, 관리자 계정이기 때문에 데이터베이스의 모든 권한을 가지고 있다.
    실제 서비스에 사용되는 db의 경우 실질적 관리자만 root 계정을 사용하고 
    DBA와 같이 데이터 관련 부서에서 각 부서에 맞게 용도에 맞는 권한을 부여하여 이용하게 된다.
     

    ⌨ 형식

    • MariaDb(MySql)은 보안상 외부로부터의 접속은 기본적으로 허용하지 않는다.
    • create user 할 때, 특정 IP를 지정하거나, %를 지정하여 외부접속을 허용할 수 있다.
    • 접속위치가 % 이면 어디에서든 그 계정으로 접속이 가능
    create user '사용자이름'@'접속위치' identified by '비밀번호'';
    grant all privileges on DB이름.* to '사용자이름'@'접속위치';
    
    flush privileges;

     

    💻 코드로 보기

    -- 계정 접속
    mariadb -uroot -p
    Enter password:
    
    -- 계정 조회
    
    # Command Prompt에서 명령문
    select user from mysql.user;
    
    # mySQL Client에서 명령문
    select user from user;

     

    create table abctab(no int primary key,name varchar(10));
    insert into abctab values(1,'tom');
    insert into abctab values(2,'charles');
    select * from abctab;

     

     

    use mysql;
    # %: IP만 있으면 접근이 가능하다.
    create user 'remoteuser'@'%' identified by '1234';
    
    -- DB사용자에게 주는 권한
    create user 'testuser'@'localhost' identified by '1234';
    
    -- 확인
    SELECT User, Host FROM mysql.user;

     

     
     

    📝 사용자 권한 확인하기

    다른 command 창을 열고 들어가 보자. 이 창은 DB에 접근하는 사용자의 창이라고 생각하자.

     show grants for '사용자이름'@'접속위치';

     
    다른 command
    DBA가 사용자(직원)에게 USER 이름과 비밀번호를 전달하고 들어간 창이라고 생각하자.

     mariadb -utestuser -p
     
     show databases;

     
     

    👏 heidiSQL에서 사용자 추가하기

     

    ✔ 사용자 권한 부여

    권한을 부여해주는 command prompt에서 작업을 하고
    다른 command prompt창에서 개별 사용자가 되어 권한의 정도를 확인해야 한다.
    (즉, 2개의 sql 프롬프트창을 돌아가며 사용해야 한다. 1개는 DBA 시점, 1개는 개발자, 사용자 시점)

    💻 코드로 보기

    관리자 창에 들어가서 권한을 준다.

    grant all privileges on mydb.* to 'testuser'@'localhost' ;
    
    -- 새로고침
    flush privileges;

    위의 코드는 mydb의 모든 권한을 준 것이다.
    특정 데이터베이스를 지정해서 줄 수도 있고 위의 코드처럼 *을 사용해 모든 권한을 부여할 수 있다.

    💫 확인하기

     

    ⌨ 특정 권한 지정해 주기

    DBA 프롬프트창

    GRANT SELECT ON DB이름.table명 TO ' 사용자이름 '@' 접속위치 ';
    -- select,update 권한 지정
    GRANT SELECT ,UPDATE ON mydb.abctab TO 'testuser'@'localhost';
    
    flush privileges; -- 새로고침

    💫 확인하기

     

    ✔권한 뺏기 ( REVOKE )

    ⌨ 형식

    REVOKE  ALL on mydb.* from 'testuser'@'localhost';
    
    flush privileges; -- 새로고침

     
     

    ✔ testuser 비밀번호 바꾸기

    💻 코드로 보기

     -- 형식
     -- SET PASSWORD FOR ' 사용자이름 '@' 접속위치 ' = PASSWORD('비밀번호');
     
     SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD('123456');

     

    사용자 삭제 drop

    ⌨ 형식

    drop user '사용자이름'@'접속위치';

    💻 코드로 보기

    MariaDB [mysql]> drop user 'remoteuser'@'%';
    
    MariaDB [mysql]> drop user 'testuser'@'localhost';
    
    MariaDB [mysql]> SELECT User, Host FROM mysql.user;

    👏 결과

    😊참고사이트

     
    https://wildeveloperetrain.tistory.com/198

     

    MySQL 계정 생성 및 권한 부여 방법 정리

    MySQL을 설치하게 되면 가장 먼저 사용되는 계정이 바로 root 계정인데요. root 계정의 경우 관리자 계정이기 때문에 데이터베이스에 대한 모든 권한을 가지고 있습니다. 때문에 실제 서비스에 사용

    wildeveloperetrain.tistory.com

    https://jay-so.tistory.com/67

     

    MySQL의 계정 생성 및 권한 부여 방법

    💁🏻‍♂️ MySQL의 계정 생성 및 권한 부여 🤔 계정 생성이란? MySQL을 설치하게 되면 가장 먼저 사용하는 계정이 root 계정입니다. → root 계정의 경우, 관리자 계정이기 때문에 DB에 대한 모든 권

    jay-so.tistory.com