- 데이터의 종류가 너무 많아질 경우 이를 목록화하여 확인할 수 있도록 생겨난 것이 바로 메타데이터(metadata)
- 메타데이터는 데이터베이스와 같이 빅데이터를 다뤄야 하는 경우에 효율적인 처리를 위해 만든 "정보에 대한 정보"
MySQL의 메타데이터
- MySQL은 메타데이터들을 종류별로 묶어 테이블을 만들고, 이 테이블을 모아 데이터베이스를 생성
- 이러한 데이터베이스가
information_schema
information_schema
데이터베이스 내의 모든 테이블은 읽기 전용이며, 단순 조회만 가능(사용자 수정 불가)
use information_schema;
show tables;
- COLUMNS : 모든 스키마의 컬럼 확인
- ENGINES : 사용되는 엔진 확인
- EVENTS : 생성된 EVENT(스케줄) 확인
- KEY_COLUMN_USAGE : 사용된 키 컬럼 확인
- PROCESSLIST : 수행중인 프로세스 리스트
- SCHEMATA : 생성된 스키마 확인
- SCHEMA_PRIVILEGES : 스키마 권한 확인
- TABLES : 생성된 모든 테이블 정보
- TABLE_PRIVILEGES : 테이블 권한 확인
- TRIGGERS : 생성된 트리거 확인 가능
- USER_PRIVILEGES : 사용자 권한 정보
- VIEWS : 생성된 뷰 정보
현재 MySQL서버 접속 유저목록 출력
select user()
사용자의 권한 확인
SELECT grantee,privilege_type,is_grantable FROM information_schema.user_privileges;
해당 스키마의 테이블 목록 확인
SELECT * FROM information_schema.`TABLES`
WHERE information_schema.`TABLES`.TABLE_SCHEMA = 'project';
해당 스키마의 모든 컬럼 출력
SELECT table_name,column_name FROM COLUMNS WHERE table_schema='project';