300x250
My-SQL version
My-Sql의 DB 저장소
INFORMATION_SCHEMA: |
INFORMATION_SCHEMA는 My-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
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
'정보보안 > Web Hacking' 카테고리의 다른 글
[SQL Injection] - 테이블에서 검색을 통해 관리자 계정 탈취 // PortSwigger 예제 (0) | 2020.08.07 |
---|---|
[SQL Injection] - 특정 텍스트를 포함한 열 찾아내기 // PortSwigger 예제 (0) | 2020.08.07 |
SQL Injection을 위한 SQL기초 구문 모음 (0) | 2020.08.06 |
[SQL Injection] - 쿼리에서 반환되는 열의 개수 구하기 // PortSwigger 예제 (0) | 2020.07.31 |
[XSS] XSS(Cross Site Scripting)공격 실습 - (Dreamhack 실습예제) (5) | 2020.07.30 |
댓글