작업 목차
: 패스워드 및 복잡도 기관 정책에 따른 설정 (관리자 비번 설정)
: 익명 사용자 계정 및 비어있는 필드 내용 삭제
: (옵션) 작업 환경설정(테이블 설정)
: 뷰 테이블 생성
: 뷰테이블 접근 제한
samadal에게 vt안의 내용을 볼 수 있게 해준다
: 필드의 데이터 암호화
: 필드의 값이 복호화 되지 않게 단방향 암호화 설정
: Log 파일 분석
- MYD (MYsql Data file)
: 실제 데이터가 저장되어 있는 파일
- MYI (MYsql Index)
: 인덱스 정보가 저장되어 있는 파일
- frm(fOrmAT)
: 테이블 구조가 저장되어 있는 파일
: 백업 및 복구
: DB 확장
- 테이블 생성
create table tbsamadal (id int(10), name char(20), pw char(20), phone char(16), email char(30));- 테이블 필드 확인
desc tbsamadal;- value 값 입력 후 테이블 확인
insert into tbsamadal values(1, ‘samadal’,password(‘1’),‘010-9999-9999’, ‘samadal@naver.com’);
insert into tbsamadal values(2, ‘madal’,password(‘1’),‘010-8888-8888’, ‘madal@naver.com’);
insert into tbsamadal values(3, ‘sam’,password(‘1’),‘010-7777-7777’, ‘sam@naver.com’);
select * from tbsamadal;
- View Table 생성(테이블에서 내가 원하는 부분만 설정해서 볼 수 있음)
create view vt as select id,name,email from tbsamadal;- 생성된 테이블 확인
show tables;- view table로 내용확인
desc vt;
select * from vt;- 저장 및 적용
flush privileges;
(linux) # systemctl restart mariadb
1. 자신의 데이터 베이스가 아니면 접속이 안되는 것 확인
# mysql –u samadal –p mysql
# mysql –u usersamadal –p mysql
# mysql –u usersamadal –p dbsamadal (접속됨) 비밀번호 : 1
1. View Table 접근 제한(samadal(사용자)에게 vt안의 내용을 볼 수 있게
해준다)
주의사항
사용자:usersamadal DB:dbsamadal로 로그인해서 grant 명령어 불가
> grant select on mysql.vt to samadal;
2. DB를 바꾸고 정보 확인하기
> use dbsamadal;
> select * from tbsamadal (dbsamadal 안에 tbsamadal이 없어서 안됨)
> select * from mysql.tbsamadal;
> select * from vt (dbsamadal 안에 vt가 없어서 안됨)
> select * from mysql.vt;
1. data 베이스는 mysql로
> use mysql;
2. 패스워드 암호화, 변화 확인
> select host, user, password from user;
> delete from user where user=’‘ (익명의 사용자 접근 불가)
> select host, user, password form user;
> update user set password=encrypt(‘1’,‘key’) where user=’usersamadal’;
> select host, user, password form user; (변화 확인)
> flush privileges;
# systemctl restart mariadb
# mysql –u usersamadal –p dbsamadal (접속 안됨)
결론
- 접속이 안되어서 루트 사용자로 다시 들어가서 보니 암호화가 되어 사용자가 있으므로
데이터를 찾을 수 없다고 나옴
1. 루트 접근, 확인
# mysql –u root –p mysql
> select host, user, password from user;
> show grants for usersamadal@localhost; (권한이 없어서 명령어 실행 안됨)
2. 복호화
> update user set password=password(‘1’) where user=’usersamadal‘;
3. 변화 확인
> select host, user, password from user;
> show grants for usersamadal@localhost; (복호화 해서 볼 수 있음)
- 암호화를 하면 show grants for usersamadal@localhost;
이 명령어를 입력할 시 아무 것도 뜨지 않는다
- 복호화를 하면 show grants for usersamadal@localhost;
이 명령어를 입력할 시 값이 보인다
- 암호화 명령어에는 ‘key’ 가 붙고 복호화에는 붙지 않는다
암호화
> update user set password=encrypt(‘1’,‘key’) where user=’usersamadal’;
복호화
> update user set password=password(‘1’) where user=’usersamadal‘
- 설정하기 / 변화 확인하기
select from tbsamadal;
update tbsamadal set pw=password(‘pwsamadal’) where id = 1;
update tbsamadal set pw=md5(‘pwsamadal’) where id=1;
select from tbsamadal;
select host, user, password from user;
2. 설정 저장
flush privileges;
exit# systemctl restart mairadb 3. 접속 가능한지 확인 (접속 불가) # mysql –u usersamadal –p dbsamadal
# cd /var/lib/mysql
# ls
# cd /var/lib/mysql/mysql
# ls
- DB에 직접 접속하지 않고 정보를 확인할 수 있다.
mysql -u root -p mysql –h 192.168.10.128
: 원하는 서버의 db에 접속
개요
백업
- 신규 HDD(1GB) 추가 후 자동 마운트 설정
- DB 전체 백업
mysqldump -u root -p –all-databases > /sdb/full.sql
- 원하는 DB 만 백업
mysqldump -u root -p mysql > /sdb/mdb.sql
- 테이블만 백업
mysqldump -u root -p mysql user > /sdb/tuser.sql
복구
- mysql -u root -p mysql < /sdb/mdb.sql
작업
1. 오토마운트 하고 필드 하나 만들고 나오고 백업하고
만든 db를 삭제하고 다시 들어가서 복구하기
2. MariaDB [mysql]> create table BKtable (num int(10));
3. DB 전체 백업(백업 할 땐 mysqldump)
4. 원래 만들어둔 테이블(BKtable) 삭제하고
5. 복구(복구할 때만 mysql)
실습 9 (DB 확장)
- 웹서버를 구성한 후 phpmyadmin, xe를 구동후 DB서버의 내용과 연동
- 웹서버를 구성한 후 phpmyadmin, xe를 구동후 DB서버의 내용과 연동