[SQL] 02-Database

김지현·2024년 6월 4일

SQL

목록 보기
1/16

📂 Database 정의

📍 Database
: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체

📍 DBMS(Database Management System)
: 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어

📍 관계형 데이터베이스(RDB : Relational Database)
: 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간

📍 SQL(Structured Query Language)
: 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어

  • 데이터 정의 언어 (DDL : Data Definition Language) : CREATE, ALTER, DROP
  • 데이터 조작 언어 (DML : Data Manipulation Language) : INSERT, UPDATE, DELETE, SELECT
  • 데이터 제어 언어 (DCL : Data Control Language) : GRANT, REVOKE, COMMIT, ROLLBACK

📂 Database 관리

📍 root 계정으로 mysql 접속

% mysql -u root -p
Enter password:

📍 현재 Database 목록 확인

SHOW DATABASES;

📍 Database 이름 지정하여 생성

CREATE DATABASE dbname;

📍 생성한 Database 사용

USE dbname;

📍 Database 삭제

DROP DATABASE dbname;

📂 User 관리

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

use mysql;
SELECT host, user FROM user;

📍 User 생성
(host 정보가 다른 user는 이름이 같아도 상관 x)

  • 현재 PC에서만 접속 가능한 사용자 (localhost)
CREATE USER 'username'@'localhost' identified by 'password';
  • 외부에서 접속 가능한 사용자
CREATE USER 'username'@'%' identified by 'password';

📍 User 삭제

DROP USER 'username'@'localhost;
DROP USER 'username'@'%';

📂 User 권한 관리

📍 사용자에게 부여된 모든 권한 목록 확인

SHOW GRANTS FOR 'username'@'localhost';

📍 사용자에게 특정 데이터베이스 모든 권한 부여

GRANT ALL ON dbname.* to 'username'@'localhost';


(참고) 수정 내용이 적용 되지 않은 경우 새로고침
FLUSH PRIVILEGES;

📍 사용자에게 특정 database 모든 권한 삭제

REVOKE ALL ON dbname.* from 'username'@'localhost';

0개의 댓글