본문 바로가기
정보보안 지망이!/Linux 심화

Linux2_ DataBase Server

by Edes Kim 2020. 6. 9.

Database Server

- 웹에서의 사용자 정보를 저장하는 공간

- 별도의 환경 설정 파일없이 사용자가 모든 설정

- 웹과 연동되기 때문에 Web Server, FTP Server와 함께 사용

패키지 (mariadb*) / 포트 (3306/tcp) / 서비스(mysql) / 데몬 (mariadb[.service])

 

<단위>

Database >Table > Field >Value

            ( 중복x ) ( 중복o )

 

CMD DB Table
Create O O
Drop O O
Delete    
Insert    
Update    
Alter    
Select    
Show    
Use    
Desc    

 

-u : 사용자를 불러오기 위한 옵션 

-p : passwd                             

= 사용자 (root)가 사용할 DB가 mysql이다. 

DB서버를 구축하고 관리하는 것또한 root가 관장한다.

 

*마스터 데이타베이스

- 데이터베이스는 SQL Server시스템에 대한 모든 시스템 수준 정보를 기록한다.

(ex. 로그온 계정, 엔드포인트, 연결된 서버 및 시스템 구성 설정등 인스턴스 차원의 메타데이터가 포함된다.)

- 다른 모든 데이터베이스의 존재 여부와 해당 데이터베이스 파일의 위치를 기록하고 SQL Server에 대한 초기화 정보를 기록하는 데이터베이스이기도 한다. 

데몬을 실행안했을때의 에러
초기 passwd 를 설정 안했기 때문에 아무것도 안치고 enter로 넘어가도 된다.

데몬을 재실행 해야  passwd의 설정이 적용된다.

databases 스펠링, 명령어 끝에 ' ; ' 조심!

DB는 백업이 없기 때문에 조심...!!

' ; ' 이 와야 명령어가 끝났다고 인식한다.

가끔 명령어를 화면 보다 길게 입력해서 다음줄로 넘어가는 부분에서 에러가 나올 수 있는데 그럴때는 이렇게 그냥 엔터쳐서 다음줄로 넘어가고 명령어 끝에 ' ; ' 만 잘쳐주면 하나의 명령어라고 잘 인식 한다.

 

 

DB안에 table 출력

Oracle이 점점 유료화 되고 많은 메모리를 차지하는 단점때문에 나온것이 mariadb이다.

 

db : 사용자와 데이터 베이스를 연결시켜주는 테이블

user : 사용자 등록 테이블                                  

 

mysqul 만 table 열람 가능

USE database명;

 

 table 안에있는 필드와 그 타입을 확인하는 명령어

> desc db

> explain db  :같은 결과


Create

database 생성


Drop

생성 때와 달리 흔적 없이 삭제되기때문에 조심!!

 


Select

화살표의 빈 공간은 Null value를 가르킨다.

SELECT field명 FROM table명

이 명령어 대신 >select * form user; 이라고 해도 되긴하다... 출력이 좀 이상하게 나오긴 하지만 해당 table의 어떤 필드가 있는지 알수 있다.

 

>select * from user


Update

빈 value (=null value)에 정보를 입력하는 명령어

* Null value : 값을 받아들일수 있는 공간. 크기가 정해져 있다

 

UPDATE table명 SET (필드명=바뀌는값) WHERE (필드명=값)조건;

password=( )         password라는 이름의 함수

 

Delete

user 필드중 null value를 가진 host는 이 값을 채우는 것이 아니라 삭제를 해줘야 한다.

* user 값이 없다는 것은 익명접속을 허용하겠다는 의미!!!

*** 보안을 위해서는 password와 user 필드에 null value를 최소한으로 해야한다. 

 

[응용]

db table의 이 내용또한 user가 익명이기 때문에 삭제해 줘야한다.

%는 vi 에디터(?) 안에서 *와 같은 역할을 한다.

 


Insert

value를 집어넣을 column을 특정짓고 해당 value만 입력
column을 명시하지 않은 채 value만 나열하여 순서에 맞게 입력. ( 단, 모든 value를 끝까지 다 써줘야 한다.)

[실습]

DB : dbtest  생성

user : usertest

table : tbtest 생성 (num, name, addr, phone)

values : 1개 이상 생성

 

데몬 재실행 중요!!