본문 바로가기
🛢 3. Database/3-1 Mysql

[Database] 03. 데이터베이스와 계정 생성하기

by 달님🌙 2021. 9. 7.
반응형

 

DOCUMENTATION 활용하기


https://dev.mysql.com/doc/

 

MySQL :: MySQL Documentation

 

dev.mysql.com

 

1. [Reference Manual] 선택

 

2. SQL Statements > 원하는 질의어 코드 참고 가능

 

 

cmd (명령 프롬프트) 창에서 데이터 베이스 생성/삭제

 

 ** MySQL 8.0 Command Line Client 실행 -> shell 에서 사용하는 거라 우리는 해당안됨

 

1. mysql 계정 접속하기

 

2. 데이터베이스 생성하기

create database testdb;
create schema   testdb;

 

3. 현재 데이터베이스 확인하기

 

4. 데이터베이스 한글 설정

create database[schema] testdb default character set utf8;

 

5. 데이터베이스 삭제

 

6. 데이터베이스 사용 및 테이블 보기

 

 

Workbench로  실행하기

 

1. sakila 데이터베이스 안에 있는 테이블 목록 보기

 

2. actor 테이블의 모든 행 보기

 

3. 창 옵션(설정 / 해제)

** 여러 줄을 한 번에 실행하고 싶을때 그냥 Ctrl + Enter만 누르면 에러 발생

- Ctrl + Shift + Enter 를 눌러야 다중 명령줄 실행이 되어 에러가 발생하지 않음

 

MySQL Workbench 단축키

 

1. 글씨 크기 변경 : Ctrl +  마우스휠

2. 쿼리 한 줄 실행 : Ctrl + Enter

3. 쿼리 다중 명령줄 실행 : Ctrl + Shift + Enter

 

 

데이터베이스 사용자 계정 추가 및 권한 부여

 

1. 사용자 (계정) 추가하기

 

- DCL 명령어로 사용자(계정) 추가하기

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
                           @ 접속 시 사용할 IP 설정(localhost만 허용)
CREATE USER 'jeffrey'@'%' identified by 'password';
                           @ 외부 모든(%) IP 접근 허용

 

- 사용자(계정) 삭제하기

drop USER 'jeffrey'@'localhost';

 

- 비밀번호 변경하기

ALTER USER 'jeffrey'@'localhost'
          IDENTIFIED WITH mysql_native_password
                     BY 'password';

 

- 실습

show databases;
use mysql;
show tables;
desc user;
select current_user(); -- 현재 유저 출력
select * from user; -- 모든 열 출력
select `host`, `user`, `plugin`, `authentication_string` from user; -- 선택한 열만 출력
CREATE USER bitcamp@'%' IDENTIFIED BY 'dkdlxl';

 

 

-- cmd 실행 접속확인
ALTER USER 'bitcamp'@'%' 
IDENTIFIED WITH mysql_native_password BY '1234';

-- cmd 실행 접속확인
flush privileges;

 

 

2. 데이터베이스 사용 권한 부여하기

 

1) 모든 권한 부여하기

- 모든 DB의 모든 테이블

GRANT ALL ON *.* TO 'jeffrey'@'localhost';

 

- 특정 DB(db1)의 모든 테이블

GRANT ALL ON db1.* TO 'jeffrey'@'localhost';

 

2) 일부 권한 부여하기

GRANT SELECT, INSERT, UPDATE ON *.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.mytbl TO 'someuser'@'somehost';

 

3) 권한 제거하기

REVOKE ALL ON *.* FROM u1;
REVOKE INSERT, UPDATE ON db1.* FROM u1;

 

    4) 계정 삭제하기

DROP USER 'jeffrey'@'localhost';



5) 권한 변경을 적용

flush privileges;

 

6) 실습

-- cmd 실행(bitcamp로 접속)
SHOW GRANTS FOR bitcamp;
SHOW DATABASES;

-- 권한부여
GRANT ALL ON lecture.* TO 'bitcamp'@'%';

-- cmd 실행
SHOW GRANTS FOR bitcamp;
SHOW DATABASES;         

-- Workbench 종료 후 시작화면 MySQL Connections (+) 버튼 클릭
Connection Name : lectureDB
Username: bitcamp

[Test Connection] 클릭
비번 : 1234 입력
저장(v)

 

반응형

댓글