[SQL] Database 정의, 관리, User (권한) 관리

허재훈·2023년 4월 19일
0

SQL

목록 보기
1/17
post-thumbnail

Database 정의

Database 란

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

DBMS 란

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

관계형 데이터베이스(RDB) 란

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

SQL 이란?

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

SQL 구성

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

Database 관리

MySQL 접속

  • root 계정으로 mysql 에 접속

% mysql -u root -p
Enter password: (내 root 번호 넣자)

% mysql -u root -p1234
이렇게 비밀번호를 바로 적어도 로그인 가능

Database 확인

  • 현재 database 목록 확인

SHOW DATABASES;

Database 생성

  • Database 이름을 지정하여 생성

CREATE DATABASE dbname;

  • testdb 라는 이름의 데이터베이스 생성 및 확인

CREATE DATABASE testdb;

Database 사용

  • 해당 데이터베이스로 이동 (사용)

USE dbname;

  • testdb 로 이동함

USE testdb;

Database 삭제

DROP DATABASE dbname;

  • testdb 데이터베이스 삭제

DROP DATABASE testdb;

User 관리

User 조회

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

    use mysql; # 이동
    SELECT host, user FROM user;

    SELECT 가져올거야
    FROM 어디에서?
    user user 라는 테이블에서
    무엇을? host, user 정보를

User 생성 - localhost (현재 PC)

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

CREATE USER 'username'@'localhost' identified by 'password';

예시) 현재 PC 에서 접속 가능한 사용자(noma, 1234) 생성

CREATE USER 'noma'@'localhost' identified by '1234';

User 생성 - % (외부)

종류 2. 외부(%)에서 접속 가능한 사용자를 비밀번호와 함께 생성

CREATE USER 'username'@'%' identified by 'password';

예시) 외부에서 접속 가능한 사용자(noma, 1234) 생성

  • 원래 user 이름은 중복이 안되는데,
    host 정보가 다른 user 는 이름이 중복이어도 가능함
    현재pc(localhost) noma
    외부(%) noma

CREATE USER 'noma'@'%' identified by '1234';

User 삭제

  • 접근 범위에 따라 같은 이름의 사용자여도 별도로 삭제

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

  • 외부에서 접근가능한 noma 계정 삭제

DROP USER 'noma'@'%'

  • 현재 PC 에서 접근가능한 noma 계정 삭제

DROP USER 'noma'@'localhost'

User 권한 관리

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

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

CREATE DATABASE testdb;

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

  • 권한 관리를 실습하기 위한 사용자 (id : noma@localhost, password : 1234) 생성

use mysql; # 이동
CREATE USER 'noma'@'localhost' identified by '1234';

User 권한 확인

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

SHOW GRANTS FOR 'username'@'localhost';

  • 현재 PC 에 접근가능한 noma 의 권한 확인

SHOW GRANTS FOR 'noma'@'localhost';

User 권한 부여

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

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

  • 현재 PC 에 접근가능한 noma 에게 testdb 의 모든 권한을 부여

GRANT ALL ON testdb.* to 'noma'@'localhost';

User 권한 제거

  • 사용자에게 특정 데이터베이스의 모든 권한을 삭제

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

  • 현재 PC 에 접근가능한 noma 에게 testdb 의 모든 권한을 삭제

REVOKE ALL ON testdb.* from 'noma'@'localhost';

새로고침

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

FLUSH PRIVILEGES;

tip

  • 방향키를 위로하면 썼던 코드를 다시 쓸 수 있다.

위 글은 제로베이스 데이터 취업 스쿨의 강의자료를 참고하여 작성되었습니다.

profile
허재

0개의 댓글