[027] Database, User 관리 / SQL 기초 -①

이연희·2023년 9월 17일
0

Chapter
1. Database 사용하기

(1) Database 정의
(2) Database 관리
(3) USER 관리
(4) USER 권한 관리

1. Database 사용하기

이번 시간부터 SQL을 배우게 되었다. SQL을 배우기 위해 DBMS로 'MySQL'을 사용하려고 한다.
사이트를 이용해서 설치를 할 수 있다. (https://dev.mysql.com/downloads/installer)

(1) Database 정의

먼저 MySQL을 이용하기 전에 여러 용어를 익혀보자.

  • Database란?
    여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
  • DBMS란?
    사용하좌 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
  • RDB(관계형 데이터베이스)란?
    서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
  • SQL이란?
    데이터에비스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
    .
    .

(2) Database 관리

MySQL 클라이언트에 들어가면 비밀번호를 입력해야 접속할 수 있다. (비밀번호는 MySQL 설치시 root계정에 설정됨)

현재 database 목록을 확인해보자.

SHOW DATABASES;

데이터베이스 이름을 설정해서 만들 수 있다.
dbname과 testdb를 만들어, 데이터베이스 목록을 확인해보자.

CREATE DATABASE dbname;
CREATE DATABASE dbname;
SHOW DATABASES;

현재 데이터베이스에서 새로 만든 testdb로 이동해서 작업을 이어나가자.

USE testdb;

새로 만든 dbname 데이터베이스를 삭제한 후, 목록을 확인해보자.

DROP DATABASE dbname;
SHOW DATABASES;


.
.

(3) USER 관리

먼저 사용자 정보는 mysql에서 관리하므로 mysql에 위치해야 한다.

USE mysql;

유저 정보를 확인해보자.

SELECT host, user FROM user;

이제 유저를 생성해보자.
먼저 현재 PC에서만 접속 가능한 localhost 사용자를 비밀번호와 함께 만든다.
(유저 네임:'zerobase', 비밀번호:'1234')

CREATE USER 'zerobase'@'localhost' indentified by '1234';
SELECT host, user FROM user;

이번에는 외부 접속 사용자를 생성해준다.
(유저네임: 'zerobase', 비밀번호: '5678')

CREATE USER 'zerobase'@'%' identified by '5678';
SELECT host, user FROM user;

이제 유저를 삭제해보자. 로컬 유저와 외부 접속 유저의 이름을 동일하게 지을 수 있으므로, 삭제할 때에도 접근 범위를 지정해서 삭제해줘야 한다.

DROP USER 'zerobase'@'%';
DROP USER 'zerobase'@'localhost';
SELECT host,user FROM user;


.
.

(4) USER 권한 관리

먼저, 권한을 부여할 로컬 사용자 'noma'을 만들어 주었다.

CREATE USER 'noma'@'localhost' identified by '1234';
SELECT host, user FROM user;

현재 사용자에게 부여된 모든 권한을 확인해보자.

SHOW GRANTS FOR 'noma'@'localhost';

이제 사용자 'noma'에게 데이터베이스의 모든 권한을 부여해서, 권한을 확인해본다.

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

마지막으로 사용자에게 부여된 데이터베이스의 권한을 삭제해보자.

REVOKE ALL ON testdb.* FROM 'noma'@'localhost';
SHOW GRANTS FOR 'noma'@'localhost';

profile
안녕하세요, 데이터 공부를 하고 있습니다.

0개의 댓글