MariaDB 계정 추가 및 권한설정


TEST 라는 DB가 만들어져 있다고 가정함

  1. root 계정으로 로그인

    • cmd 창 실행 후 아래 명령어 입력
      명령어
      1
      mysql -uroot -p mysql
  2. 계정 설정

    • 조회

      명령어
      1
      SELECT HOST, USER, PASSWORD FROM USER;
    • 추가

      명령어
      1
      CREATE USER [계정명]@[IP] IDENTIFIED BY '[비밀번호]';
      예시
      1
      2
      3
      4
      5
      -- localhost에서만 접근 가능
      CREATE USER user@localhost IDENTIFIED BY '1234';

      -- '%'로 하면 모든 IP에서 접근 가능
      CREATE USER user@'%' IDENTIFIED BY '1234';
    • 삭제

      명령어
      1
      DROP USER [계정명]@[IP];
      예시
      1
      2
      3
      4
      5
      -- localhost인 경우
      DROP USER user@localhost

      -- '%'인 경우
      DROP USER user@'%'
  1. 권한 설정
    • 추가

      명령어
      1
      GRANT [접근권한] ON [데이터베이스명].[테이블명] TO [계정명]@[IP];
      예시
      1
      2
      3
      4
      5
      6
      7
      8
      -- *.* 로 하면 모든 데이터베이스와 해당 데이터베이스의 모든 테이블에 권한 허용 
      GRANT ALL PRIVILEGES ON *.* TO user@localhost;

      -- TEST 데이터베이스의 모든 테이블에 모든 권한 허용
      GRANT ALL PRIVILEGES ON test.* TO user@'%';

      -- TEST 데이터베이스의 모든 테이블에 SELECT, INSERT, UPDATE, DELETE 권한만 허용
      GRANT SELECT, INSERT, UPDATE, DELETE ON test.* TO user@'%';
    • 조회

      명령어
      1
      SHOW GRANTS FOR [계정명]@[IP];
      예시
      1
      2
      3
      4
      5
      -- localhost인 경우
      SHOW GRANTS FOR user@localhost;

      -- '%'인 경우
      SHOW GRANTS FOR user@'%';
    • 삭제

      명령어
      1
      REVOKE [접근권한] ON [데이터베이스명].[테이블명] FROM [계정명]@[IP];
      예시
      1
      2
      3
      4
      5
      -- 모든 데이터베이스의 권한 삭제 
      REVOKE ALL ON *.* TO user@localhost;

      -- 모든 데이터 베이스의 INSERT, UPDATE, DELETE 권한만 삭제
      REVOKE INSERT, UPDATE, DELETE ON *.* TO user@localhost;
  1. 적용
    • 아래 명령어 실행
      명령어
      1
      FLUSH PRIVILEGES;

[참고]
  1. 함수를 생성하려면 아래 명령어 실행
    명령어
    1
    SET GLOBAL log_bin_trust_function_creators = ON;
공유하기 댓글