본문 바로가기

SQL/Mysql

[MYSQL] 계정 생성 관리 및 권한 설정

1. 접속

mysql -u root -p

2. 데이터베이스 조회 

show databases;

3.  데이터 베이스 선택

use mysql;

4. 사용중인 DB 테이블 목록 조회

show tables;
  • 사용중인 DB의 테이블 목록 조회
    mysql> SHOW TABLES;
  • 특정 테이블 패턴만 조회하기
    mysql> SHOW TABLES LIKE 'sample%';
  • 복잡한 조건 조회
    mysql> SHOW TABLES WHERE Tables_sample LIKE 'sample%' AND Tables_sample != 'sample_sub';
  • 다른 DB의 테이블 목록 조회하기
    mysql> SHOW TABLES FROM sample_db;

5. 계정정보를 조회

select host, user, plugin from user;
  • 계정 관련된 정보를 관리하는 테이블은 user 테이블

6. 계정 생성(계정이 있다면 권한만 부여)

#관리자 계정시 : %
create user '계정이름'@'%' identified by '비밀번호';

#일반 계정시 : localhost
create user '계정이름'@'localhost' identified by '비밀번호';

7. 계정 권한부여

GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%';
GRANT ALL ON sample_db.* TO '아이디'@'%' IDENTIFIED BY '비밀번호';
  • all privileges = 모든 권한의 동의어 (서버 관리)

8. 변경 사항 반영

FLUSH privileges;
  • 사용중인 MySQL의 캐시를 지우고 새로운 설정을 적용하기 위해 사용
  • 이 명령어를 사용하는 사용자는 reload권한이 있어야 함
  • MySQL의 환경 설정을 변경할경우, MySQL의 재시작 없이 변경한 설정부분을 적용시키고자 할 때 사용
  • id, pass가 추가, 수정 되었을 경우, 환경 설정이 변경되었기에 해당 명령어가 필요
  • 데이터베이스의 TABLE의 추가, 삭제 등의 변경은 MySQL 환경 설정이 아니므로 해당 명령어가 필요가 없음

 

추가) 7. 계정 권한부여 설명

https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_replication-client

 

MySQL :: MySQL 5.7 Reference Manual :: 6.2.2 Privileges Provided by MySQL

6.2.2 Privileges Provided by MySQL The privileges granted to a MySQL account determine which operations the account can perform. MySQL privileges differ in the contexts in which they apply and at different levels of operation: Administrative privileges en

dev.mysql.com