Database를 사용해보자 (DB,user관리)

Jane의 study note.·2022년 12월 2일
0

MySQL

목록 보기
2/17

개발환경

  • MySQL 8.0 Command Line Client
  • MySQL Workbench 8.0 CE
  • AWS RDS
  • Python in VS Code

MySQL 접속

  • MySQL 8.0 Command Line Client 실행 후 root계정으로 mysql에 접속
mysql -u root -p  
Enter password: ****

# ※시스템 환경변수에서 path C:\Program Files\MySQL\MySQL Server 8.0\bin추가한 뒤에됨

1. Database 관리

데이터베이스: 테이블을 담은 폴더 개념, 스키마Schema

  • 데이터베이스 이름: testdb
SHOW DATABASES; 		# 데이터베이스 목록 확인
CREATE DATABASE testdb; # 데이터베이스 생성
Use testdb; 			# 데이터베이스 이동 
DROP DATABASE testdb; 	# 데이터베이스 삭제

- mydb 라는이름의데이터베이스를만들고확인하세요. CREATE DATABASE mydb;
- mydb 를삭제하고확인하세요.  DROP DATABASE mydb;

2. User 관리

1. User 조회

사용자정보는 mysql 에서관리하므로일단 mysql 데이터베이스로이동후조회

use my sql;
select host, user From user;    

2. User 생성 - 1) localhost

현재 PC 에서만접속가능한사용자를비밀번호와함께생성

CREATE USER 'username'@'localhost' identified by 'password';
현재 PC 에서접속가능한사용자(noma, 1234) 생성
CREATE USER 'noma'@'localhost' identified by '1234';      

3. User 생성 - 2) %

외부에서접속가능한사용자를비밀번호와함께생성

CREATE USER 'username'@'%' identified by 'password';
외부에서접속가능한사용자(noma, 1234) 생성
CREATE USER 'noma'@'%' identified by '1234'; 

4. User 삭제

접근범위에따라같은이름의사용자여도별도로삭제
DROP USER 'noma'@'localhost'      => 현재 PC 에서접근가능한 noma 계정삭제
DROP USER 'noma'@'%'              => 외부에서접근가능한 noma 계정삭제
예시
- 외부에서도접속가능한사용자를생성하고확인하세요. (Id : zero, password : 1234)
CREATE USER 'zero'@'%' identified by '1234';
Select host, user From user;
- 외부에서도접속가능한사용자 zero 를삭제하고확인하세요.
DROP USER 'zero'@'%';
Select host, user From user;

3. User 권한 관리

1.실습환경만들기 1 - Database 만들기

권한관리를실습하기위한 Database (testdb) 생성
CREATE DATABASE testdb;

2. 실습환경만들기 2 - User 만들기

권한관리를실습하기위한사용자 (id : noma@localhost, password : 1234) 생성
CREATE USER 'noma'@'localhost' identified by '1234';

3. User 권한확인

사용자에게부여된모든권한목록을확인
SHOW GRANTS FOR 'username'@'localhost';
현재 PC 에접근가능한 noma 의권한확인
SHOW GRANTS FOR 'noma'@'localhost';

4. User 권한부여

기본으로 주어져 있는 권한 
GRANT USAGE ON *.* TO 'noma'@'localhost' => 기본권한을 의미함

사용자에게특정데이터베이스의모든권한을부여
GRANT ALL ON dbname.* to 'username'@'localhost';

현재 PC 에접근가능한 noma 에게 testdb 의모든권한을부여
GRANT ALL ON testdb.* to 'noma'@'localhost';

 => 기본 권한 외에 testdb에 대한 사용권한이 주어짐
       GRANT ALL PRIVILEGES ON 'testdb'.* TO 'noma'@'localhost'

5. User 권한제거

사용자에게특정데이터베이스의모든권한을삭제
REVOKE ALL ON dbname.* from 'username'@localhost;
현재 PC 에접근가능한 noma 에게 testdb 의모든권한을삭제
REVOKE ALL ON testdb.* from 'noma'@localhost;

6. User 권한 부여

참고 - 수정내용이적용이되지않은경우새로고침

FLUSH PRIVILEGES;
flush privileges;
예제
- mydb 의모든권한을 zero 에게부여하고확인하세요.
GRANT ALL ON mydb.* to 'zero'@'%';
- zero 에게부여한 mydb 에대한권한을삭제하고확인하세요.
REVOKE ALL ON mydb.* from 'zero'@'%';
SHOW GRANTS FOR 'zero'@%';

MySQL 커맨드라인 사용시 참고사항

  • <단축키>
    ->(화살표) 빠져나오는 법: ctrl c

  • <cmd 창클리어> : system clear나 clear가 안먹힐 때
    = Windows 명령 프롬프트(cmd)에서 ls, clear(cls) 명령어 사용하는 방법

doskey ls = dir
doskey clear = cls
ls
clear #명령어 실행됨

※ 참고: https://somjang.tistory.com/entry/Windows-명령-프롬프트cmd에서-ls-clear-명령어-사용하는-방법

0개의 댓글