DB구현-권한과 사용자 관리

조정우·2022년 5월 8일
0

DB구현

목록 보기
14/16
post-thumbnail

2022.05.08
국비지원교육 DB구현 인터넷강의 14강

권한 시스템

권한의 개념

1.권한의 정의
권한 : 명령어 실행 또는 데이터를 접근하거나 사용하는 허가 여부
2.MySQL의 권한
-허가 되지 않은 사용자가 DBMS에 접속하거나 사용자의 무분별한 데이터 접근을 제어
-사용자들의 모든 접속 시도 및 질의 실행 동작에 대한
접근 제어 리스트(ACL)기반의 보안정책을 운용
3.MySQL 권한 시스템의 기능
-접속 권한
-테이블 접근 권한
-명령어 실행 권한

권한 시스템의 구성요소

1.시스템 테이블
-MySQL 스키마에 위치
-사용자 및 시스템 관리를 위한 데이터 저장
2.권한 시스템을 위한 시스템 테이블
-user 테이블 : 호스트, 사용자 아이디, 패스워드, 명령어 별 실행권한 관리
-db 테이블 : 스키마 내에서 명령어 별 실행권한 관리
-tables_priv 테이블 : 테이블 별 명령어 실행권한 관리
-columns_priv 테이블 : 컬럼 별 명령어 실행권한 관리

권한 시스템의 동작과정

1.사용자 접속 인증
-사용자의 호스트와 사용자명을 확인
-User 테이블에서 Host, User, Password 컬럼값을 검사하여 접속 여부 결정

DCL 구문을 이용한 사용자와 권한 관리

사용자 추가/삭제

1.사용자 추가
-시스템 테이블인 User 테이블에 INSERT INTO 문을 사용하여 사용자 추가가 가능하나 INSERT 문의오류로 시스템 관리에 치명적 문제를 발생시킬 수 있음
-사용자와 사용자의 권한을 CREATE USER 문과 GRANT 문 을 사용하여 관리하는 방식을 권장
2.CREATE USER 구문형식
create user <사용자명>
identified by '<패스워드>'
3.다수 사용자 요청 처리
4.사용자 삭제
-User 테이블에 DELETE 문을 사용하여 사용자 삭제가 가능하나 오류로 문제가 발생할 소지가 있음
-DROP USER 문을 사용하여 사용자를 삭제하는 방식을 권장
5.DROP USER 구문 형식
drop user <사용자명>

권한 부여/회수

1.권한 부여
-직접 시스템 테이블을 조작은 매우 위험한 방법
-사용자에게 권한을 부여 시 GRANT 명령어 를 사용
2.GRANT 명령어 구문형식
3.데이터베이스 및 테이블 표기방법
4.GRANT 문의 예
-localhost에서 접속하며 student라는 사용자에게 koreatech 스키마에 대한 모든 권한을 부여
grant all privileges on koreatech.*
to student@'localhost'
-localhost에서 접속하며 student라는 사용자에게 koreatech 스키마의 강의 테이블에 대한 SELECT 권한을 부여
grant select on koreatech.강의
to student@'localhost'
5.권한 회수
-권한 부여와 마찬가지로 시스템 테이블을 직접 조작하는 것은 매우 위험
-사용자에게 권한을 회수 시 REVOKE 명령어를 사용
6.REVOKE 명령어 구문형식
7.REVOKE 문의 예
-localhost의 student2에게 부여된 koreatech 스키마의 교수 테이블의 교수이름 컬럼에 대한
SELECT 권한을 제거

GUI 방식을 이용한 사용자와 권한 관리

Users and Privileges 메뉴

1.Users and Privileges
-사용자 추가 및 제거를 비롯하여 사용자의 권한을 GUI 방식으로 관리할 수 있는 메뉴
2.Users and Privileges의 기능
-login 탭 : 사용자의 추가, 변경 또는 삭제 기능 담당
-account limits : 사용자가 sql문을 요청할 수 있는 횟수, 연결할 수 있는 횟수 등을 결정
-administrative roles : 역할을 생성하여 일괄적으로 권한을 부여
-schema privileges : 사용자 별 권한을 세세하게 부여

사용자 추가/삭제

1.Login 탭
-Login 탭에서는 사용자를 추가하거나 삭제
2.Administrative Roles 탭
-Administrative Roles 탭은 Role이란 ‘역할’을 나타내며, 집합 단위로 사용자의 계정에 권한을 부여
3.Schema Privileges 탭
-시스템을 사용하는 사용자를 그룹화하여 각 그룹별 권한을 지정하고 사용자가 포함되는 그룹에 맞춰 권한을 일괄적으로 부여할 수 있는 기능도 수행

profile
코딩관광

0개의 댓글