본문 바로가기
정보보안/Web Hacking

웹 해킹을 위한 DB 별 기초 쿼리문

by 우동이 2020. 8. 7.
300x250

My-SQL version 

My-Sql의 DB 저장소

INFORMATION_SCHEMA:

INFORMATION_SCHEMAMy-SQL 서버가 운영하는 

모든 데이터베이스의 정보를 저장하는 장소이며

DB명, Table명, Column의 자료형과 접근 권한 등 

여러 중요한 정보들이 포함되어 있다.


My SQL의 기초 문법(조회, 주석)

--버전정보 조회
SELECT VERSION();
mysql > --version

# 한줄 주석

/*
전체 주석
*/

#DB 조회문
SELECT DATABASE(); /*현재 사용중인 DB 명 조회*/

SELECT 1 FROM Information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'DBNAME' 
/*-> 해당 DB 존재여부 확인(있으면 1, 없으면 0)*/

SELECT SCHEMA_NAME FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'DBNAME';

#테이블 조회문
SELECT 1 FROM information_schema.tables 
WHERE table_schema = 'DBNAME'  AND table_name = 'TABLENAME' 
/*-> 테이블의 존재여부 확인(있으면 1, 없으면 0)*/

SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.tables
WHERE table_schema = 'DBNAME'

--컬럼 조회문
SELECT 1 FROM Information_schema.columns WHERE table_schema = 'DBNAME'
AND table_name = 'TABLENAME'  AND column_name = 'COLUMNNAME'
/*-> 컬럼의 존재여부 확인(있으면 1, 없으면 0)*/

SELECT column_name FROM information_schema.columns WHERE table_schema = 'DBNAME'
AND table_name = 'TABLENAME'

--사용자 조회문
SELECT user();
SELECT system_user();
SELECT current_user; /*현재 접속한 유저목록 출력*/

Ms-SQL version 

Ms-Sql의 DB 정보 모음 스키마 view

INFORMATION_SCHEMA:

mysql과 동일하게 information_schema에 DB의 모든 정보가 저장되며

DB, 테이블, 칼럼에 대한 정보를 조회할 수 있습니다.

 

MS-SQL은 각 데이터베이스 별 시스템 뷰가 존재하기 때문에

조회 시 DB 이름으로 조회하지 않아도 됩니다.

 


MS SQL의 기초 문법(조회, 주석)

-- 버전조회
SELECT @@version

--한줄주석

/*
전체주석
*/

--DB 조회
SELECT * FROM sys.sysdatabases;
SELECT name, database_id, create_date FROM sys.databases; -- DB 에서 name과 db의 id 생성일자 조회
SELECT DB_NAME(); -- 현재 DB명 조회
SELECT DB_NAME(3); ---> DB id 가 3인 DB명 조회

--테이블 조회
SELECT * FROM sys.tables 
SELECT * FROM information_schema.tables

--컬럼 조회
SELECT * FROM sys.syscolumns 

SELECT column_name FROM information_schema.columns 
WHERE table_name = "tablename"

Oracle DB version 

INFORMATION_SCHEMA:

 

현재 알아본 결과로 Oracle, Ms sql, My sql 전부

INFORMATION_SCHEMA에 DB의 정보가 저장되는 것으로 학습했습니다.

정확한 이유나 원리에 대해서는 더 공부해봐야 하겠지만

적어도 Oracle, mssql, mysql 전부 RDBMS에 속하는 특성상

이러한 형태로  구성되어 있는 게 아닌가 싶습니다.

 

또한 Oracle DB는 뛰어난 안정성과 성능을 보여주어

많은 기업에서 사용되지만 가격이 비싸다는 단점이 존재하며

현재 Oracle DB를 사용하던 카카오에서도

"탈 오라클"을 하고 있는 등 

NoSQL이나 다음 단계의 5세대 DB로 변경되어 가고 있는 추세입니다.

https://www.etnews.com/20200130000324

 

카카오, 연내 오라클 DB 전면 걷어낸다

카카오가 연내 오라클 데이터베이스관리시스템(DBMS)을 전면 걷어낸다. 오픈소스 소프트웨어(SW)의 안정성이 높아지고 오라클 DBMS 유지·보수 대안 서비스가 등장하면서 탈 오라클 환경이 갖춰졌

www.etnews.com


Oracle DB의 기초 쿼리문(조회, 주석)

--버전 정보 조회
SELECT banner FROM v$version
SELECT version FROM v$instance


-- 한줄 주석

/*
전체 주석
*/

--DB 정보 조회
SELECT SCHEMA_NAME FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'DBNAME';

--테이블 조회
SELECT table_name FROM information_schema.TABLES 
WHERE table_schema = 'DBNAME'

--컬럼 조회
SELECT column_name FROM information_schema.columns 
WHERE table_schema = 'dbname'
AND table_name = 'tablename'

 

 

 

300x250

댓글