SQL - (Basic) user 관리/권한 부여

jaam._.mini·2023년 12월 18일
0
post-thumbnail

Database


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



DBMS


DBMS; Database Management System

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
  • 사용자에게 여러가지 서비스를 제공해주는 시스템
  • MySQL이 여기에 해당 됨



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


RDB; Relational Database

  • 서로 간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장 공간
  • 저장된 데이터들 사이에 관계가 있어서, 관계를 통해 관련 데이터를 검색해서 가져오거나 삭제 하는 것들을 말함



SQL


SQL; Structured Query Language

  • 데이터 베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
  • 표준이 있고 DBMS 마다 추가 기능들이 필요



SQL 구성


  • 데이터 정의 언어(DDL; Data Definition Language)
    - CREATE, ALTER, DROP 등의 명령어

  • 데이터 조작 언어(DML; Data Mainpulation Language)
    - INSERT, UPDATE, DELETE, SELECT 등의 명령어
    - ⭐SELECT 명령어 중요!

  • 데이터 제어 언어(DCL; Data Control Language)
    - GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어





1. Database

관리


  1. MySQL 접속

  1. 현재 database 목록 확인
    SHOW DATABASES;





생성


  1. Database 이름을 지정하여 생성
    CREATE DATABASE testdb;
    - 문법 : 생성할거야, 데이터베이스를, testdb 이름으로, 즉시 실행해줘(;)





이동(사용)


USE testdb;





삭제


DROP DATABASE testdb;





2. User

조회


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

use mysql;
SELECT host, user FROM user;





생성


[종류]
-현재 pc에서 사용가능한 사용자
-외부 pc에서 사용가능한 사용자



(1) localhost (현재 PC)


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

CREATE USER 'username'@'localhost' identified by 'password';
  • 문법 :
    • 생성할거야,USER를
    • 어떤 유저 - 'username'의 유저를
    • 그런데(@)
    • 현재 pc에서 만 접속 가능한 사용자야
    • 비밀번호는
    • 'password'야
    • 즉시 실행해줘
  • 예제
    현재 PC에서 접속가능한 사용자(nima, 1234) 생성
create user 'nima'@'localhost' identified by '1234';



(2) % (외부 PC)


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

CREATE USER 'username'@'%' identified by 'password';
  • 예제
    외부 PC에서 접속가능한 사용자(nima, 1234) 생성
create user 'nima'@'%' identified by '5678';





삭제


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

drop user 'nima'@'localhost'
drop user 'nima'@'%'





3. User 권한 관리

1_실습환경 만들기


(1) database 만들기

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

create database testdb;

(2) mysql 접속

사용자 정보는 MySQL 데이터베이스에서 관리하고 있음
-> mysql로 이동해서 user 관리를 해줘야 함

use mysql;

(3) User 만들기

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

create user 'noma'@'localhost' identified by'1234';
select host, user from user;

▲ 문법 :

  • 가져와줘
  • host와 user 정보를
  • 어디에서 부터
  • user로 부터
  • 즉시





2_권한 확인


(1) 목록확인

사용자(noma, localhost)에 부여된 모든 권한 목록을 확인

show GRANTS for 'noma'@'localhost';


(2) 권한 부여

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

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

▲ 문법 :

  • testdb 를 만들었으니
  • .* - 모든 권한을 '부여' 할건데
  • 누구에게
  • 'noma'@'localhost' 에게
  • 즉시 실행

(3) 새로고침

수정내용이 적용되지 않는 경우 새로고침 명령어 입력

FLUSH PRIVILEGES;

(4) 부여 권한 삭제

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

revoke all on testdb.* from 'noma'@'localhost';


제로베이스 데이터 스쿨
profile
비전공자의 데이터 공부법

0개의 댓글