SQL (1) : Database 관리, user 관리, user 권한 관리

Jio.B·2023년 7월 8일

Database 정의

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

[ SQL 구성 ] - 데이터분석가는 데이터조작언어, 그 중에서도 SELECT에 집중


Database 관리 이론&실습

[이론]

  • 현재 database 목록 확인: show databases;
  • database 이름 지정하여 생성: create database testdb;
  • 해당 database로 이동(사용): use testdb;
  • database 삭제: drop database testdb;

[실습]

show databases

create database

  1. MySQL 8.0 Command Line Client 실행

use DBname

  1. (실습1) mydb라는 이름의 데이터베이스 만들고 확인
  2. (실습2) mydb 삭제하고 확인하기 ![]

drop database


User 관리 이론&실습

[이론]

select host, user from user

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

    mysql> select host, user from user;

  • 현재 pc에서만 접속 가능한 사용자(=local host)를 비밀번호와 함께 생성

    mysql> create user 'username'@'localhost' identified by 'password';

create user (identified by)

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

    mysql> create user 'username'@'%' identified by 'password';

!!참고!! 호스트 정보가 다르다면( localhost or % ) username이 동일해도 ok(=구분 가능함)

drop user

  • user 삭제(호스트별로 삭제)

    mysql> drop user 'username'@'localhost'; 또는
    mysql> drop user 'username'@'%';

[실습]

  • (실습 3) 외부에서도 접속 가능한 사용자를 생성하고 확인하기
    단, id:zero, password: 1234
  • (실습 4) 외부에서도 접속가능한 사용자 zero를 삭제하고 확인하기

User 권한 관리 이론&실습

[이론]

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

    create database testdb;

  • 권한 관리를 실습하기 위한 사용자도 생성하기 >> id:noma@localhost, p.w.:1234
    (!!주의!!) 사용자 정보는 'mysql'이라는 데이터베이스에서 관리하기 때문에 use mysql부터 선언하여 mysql로 이동하기

    mysql> use mysql;
    Database changed
    mysql> create user 'noma'@'localhost' identified by '1234';

show grants for

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

    mysql> show grants for 'username'@'localhost';

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

flush privileges

(!!참고!!) 수정 내용이 적용되지 않을 경우 새로고침 실행(flush privileges;)

mysql> grant all on dbname.* 'username'@'localhost';

revoke all on DBname ~ from

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

    mysql> revoke all on dbname.* from 'username'@'localhost';

[실습]

grant all on DBname

(실습 5) mydb의 모든 권한을 zero에게 부여하고 확인하기

revoke all on DBname

(실습 6) zero에게 부여한 mydb에 대한 권한을 삭제하고 확인하기

0개의 댓글