SQL DCL(Data Control Language) 이해 및 실습
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
5. SQL DCL(Data Control Language) 이해 및 실습¶
5.1. mysql 사용자 확인, 추가, 비밀번호 변경, 삭제¶
1. mysql 사용자 확인 # mysql -u root -p mysql> use mysql; mysql> select * from user; 2. 사용자 추가 # mysql -u root -p mysql> use mysql; 1) 로컬에서만 접속 가능한 userid 생성 mysql> create user 'userid'@localhost identified by '비밀번호'; 2) 모든 호스트에서 접속 가능한 userid 생성 mysql> create user 'userid'@'%' identified by '비밀번호'; 3. 사용자 비밀번호 변경 mysql> SET PASSWORD FOR 'userid'@'%' = '신규비밀번호'; 4. 사용자 삭제 # mysql -u root -p mysql> use mysql; mysql> drop user 'userid'@'%';
실습 - 사용자 확인, 추가, 비밀번호 변경, 삭제
# mysql -u root -p mysql> use mysql; mysql> create user '만들고싶은ID'@'%' identified by '비밀번호'; mysql> select host, user from user; mysql> SET PASSWORD FOR '만들고싶은ID'@'%' = '신규비밀번호'; mysql> exit;
# mysql -u 만들고싶은ID -p mysql> exit;
# mysql -u root -p mysql> use mysql; mysql> drop user '만들고싶은ID'@'%'; mysql> select host, user from user; mysql> exit;
# mysql -u 만들고싶은ID -p 에러가 나와야 함
5.2. mysql 접속 허용 관련 설정¶
1) 로컬에서만 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@localhost identified by "korea123"; 2) 특정 호스트에만 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@www.blim.co.kr identified by "korea123"; 3) 모든 호스트에서 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@'%' identified by "korea123"; 옵션 상세 (1) ALL – 모든 권한 / SELECT, UPDATE – 조회, 수정 권한등으로 권한 제한 가능 예) GRANT INSERT,UPDATE,SELECT ON *.* TO 'username'@'localhost'; (2) DATABASE.TABLE – 특정 데이터베이스에 특정 테이블에만 권한을 줄 수 있음 / *.* – 모든 데이터베이스에 모든 테이블 권한을 가짐 (3) root – 계정명 (4) korea123 – 계정 비밀번호
참고: flush privileges 명령¶
- flush privileges;
- user, db 같은 grant table을 INSERT, UPDATE 등을 써서 직접 데이터 입력/수정을 할 경우, grant tables를 다시 읽어야 권한 설정이 적용됨.
- 서버를 재기동하지 않고, grant table을 새로 읽으라는 명령이 flush privileges 이지만, INSERT, UPDATE 가 아닌 GRANT 명령을 사용했을 경우에는 해당 명령 생략 가능 (하지만 확실하게 하기 위해 일반적으로 사용)
5.2. mysql 접속 허용 관련 설정¶
1) 로컬에서만 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@localhost identified by "korea123"; 2) 특정 호스트에만 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@www.blim.co.kr identified by "korea123"; 3) 모든 호스트에서 접속 허용 mysql> GRANT ALL ON DATABASE.TABLE to 'root'@'%' identified by "korea123"; 옵션 상세 (1) ALL – 모든 권한 / SELECT, UPDATE – 조회, 수정 권한등으로 권한 제한 가능 예) GRANT INSERT,UPDATE,SELECT ON *.* TO 'username'@'localhost'; (2) DATABASE.TABLE – 특정 데이터베이스에 특정 테이블에만 권한을 줄 수 있음 / *.* – 모든 데이터베이스에 모든 테이블 권한을 가짐 (3) root – 계정명 (4) korea123 – 계정 비밀번호
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요
참고: flush privileges 명령¶
- flush privileges;
- user, db 같은 grant table을 INSERT, UPDATE 등을 써서 직접 데이터 입력/수정을 할 경우, grant tables를 다시 읽어야 권한 설정이 적용됨.
- 서버를 재기동하지 않고, grant table을 새로 읽으라는 명령이 flush privileges 이지만, INSERT, UPDATE 가 아닌 GRANT 명령을 사용했을 경우에는 해당 명령 생략 가능 (하지만 확실하게 하기 위해 일반적으로 사용)