01.Mysql 기초 - 데이터 제어 언어(DCL, Data Contorl Language)

ID짱재·2021년 2월 17일
0

MySQL

목록 보기
4/8
post-thumbnail

🌈 터미널에서 데이터베이스 관리하기

🔥 mysql 접속

🔥 mysql 사용자 확인, 추가, 비밀번호 변경, 삭제

🔥 mysql 접속 허용 설정


1. mysql 접속

  • 터미널에서 mysql을 다루기 위해서는 터미널에서 mysql로 접속할 수 있어야함
    1) 터미널을 켜고 mysql BASE Directory로 이동
    • BASE Directory 경로는 [시스템 환경설정] ⇢ [MySQL] ⇢ [Configuration]에서 확인할 수 있음
    • 설치 시 특별한 경로 설정을 해주지 않았다면, /usr/local/mysql 임
    • Directory 이동 방법 : 터미널 실행 ⇢ "cd /usr/local/mysql" 입력
    2) mysql BASE Directory에서 바이너리 폴더로 이동 : cd bin
    3) mysql 실행 및 로그인 : ./mysql -u root -p
    • 비밀번호 입력하라는 표시 ⇢ mysql 비밀번호 입력

2. mysql 사용자 확인, 추가, 비밀번호 변경, 삭제

  • mysql에는 user을 관리하는 데이터베이스가 mysql이라는 이름으로 존재
  • mysql 데이터베이스를 지정하여 사용자 관련한 작업들을 수행

    1) 터미널에서 mysql 사용자 확인

    • [mysql 실행 및 로그인] ⇢ [mysql DB 지정] ⇢ [user 조회]
      • mysql> ./mysql -u root -p
      • mysql > use mysql;
      • mysql > select * from user;

    2) 터미널에서 mysql 사용자 추가

    • [mysql 실행 및 로그인] ⇢ [mysql DB 지정] ⇢ [user 생성]
    • user을 생성하는 방법을 2가지 방법으로 나뉨
    • 🔥 로컬에서만 접속 가능한 userid를 생성 : 'userid'@localhost
      • mysql> ./mysql -u root -p
      • mysql > use mysql;
      • mysql > select * from user;
      • mysql> create user 'userid'@localhost identified by '비밀번호';
    • 🔥 모든 호스트에서 접속 가능한 userid를 생성 : 'userid'@'%'
      • mysql> ./mysql -u root -p
      • mysql > use mysql;
      • mysql > select * from user;
      • mysql> create user 'userid'@'%' identified by '비밀번호';

    3) 터미널에서 mysql 사용자 비밀번호 변경

    • [mysql 실행 및 로그인] ⇢ mysql DB 지정 ⇢ 비밀번호 변경
      • mysql> ./mysql -u root -p
      • mysql > use mysql;
      • mysql> SET PASSWORD FOR 'userid'@'%' = '변경할 비밀번호';

    4) 터미널에서 mysql 사용자 삭제

    • [mysql 실행 및 로그인] ⇢ mysql DB 지정 ⇢ 사용자 삭제
      • mysql> ./mysql -u root -p
      • mysql> use mysql;
      • mysql> drop user 'userid'@'%';

3. mysql 접속 허용 설정

1) 현재 부여된 권한 조회

  • [mysql 실행 및 로그인] ⇢ 권한 조회(해당 ID)
    • mysql> ./mysql -u root -p
    • mysql> SHOW GRANTS for [해당 ID];

2) 접속 허용 설정 및 권한 부여

  • [mysql 실행 및 로그인] ⇢ 로컬 접속 허용 설정
  • mysql> GRANT [권한] ON [DATABASE명].[TABLE명] to '[id명]'@localhost;
  • [권한] 옵션 : ALL은 모든 권한 / SELECT, UPDATE는 조회 수정 등 권한 제한 가능
  • [DATABASE명].[TABLE명] 옵션 : 특정 데이트 베이스 또는 테이블만 한정하여 권한 제한 가능
  • [DATABASE명].[TABLE명] 옵션으로 *.*을 주면 모든 데이터베이스 및 모든 테이블 권한 부여
  • [id명]는 해당 권한 옵션을 줄 id명 입력
  • 🔍 예시1 : jaewon에게 모든 데이터베이스 및 모든 테이블에 모든 권한 부여
    • mysql> ./mysql -u root -p
    • mysql> GRANT ALL ON *.* to 'jewon'@localhost;
  • 🔍 예시2 : jaewon에게 모든 데이터베이스 및 모든 테이블에 조회, 수정 권한만 부여
    • mysql> ./mysql -u root -p
    • mysql> GRANT SELECT, UPDATE ON *.* to 'jewon'@localhost;
profile
Keep Going, Keep Coding!

0개의 댓글