-
MariaDB 기본 개념, 사용자와 권한DBMS/MariaDB 2024. 2. 23. 22:08728x90반응형
DBMS(Database Management System)
- 웹 개발 뿐 아니라 서버(혹은 서비스 제공자 등)가 클라이언트(혹은 일반적인 사용자)에게 서비스를 제공하는데 있어, 소실되면 안되고 유지, 기억해야하는 내용을
SQL을 통해 쉽게 처리하기 위해 사용하는 일련의 체계SQL(Structured Query Language)
- DBMS가 가지는 구조 및 데이터를 통제하기 위해 사용하는 언어. 줄여서 쿼리(Query)라고 하기도 한다.
규칙
- 키워드는 대문자로 작성하는 것이 권장되나, 소문자도 무방. 단, 섞어서 작성하지 않는다.
- 모든 구성요소(스키마, 테이블, 열 등)의 이름은 (소문자) 스네이크 케이스로 명명한다.
- 모든 구성요소 언급시 백틱(`)으로 감싼다. 따옴표가 아니니까 헷갈리지 말기
- 문자열 리터럴은 홀따옴표(')로 감싼다
- 하나의 쿼리가 끝나는 경우 세미콜론(;)을 작성한다주석(Comment)
- 쿼리 실행에 영향을 미치지 않고 간단한 메모를 남기기 위해 사용
- 한 줄 주석 : 샾(#) 및 대쉬 두개(--)를 사용하여 작성. 단, -- 뒤에는 공백이 있어야 함
- 여러 줄 주석 : /*로 시작하여 */로 끝낸다.사용자(user)
- DBMS 서버에 접속하여 각종 쿼리를 실행할 수 있는 주체이자 구성요소 중 하나
- DBMS 설치 시, 모든 권한을 가지는 최고 관리자 계정인 root가 자동 생성
- 이러한 root 계정은 모든 권한을 가지고 있어 보안에 취약함으로 실무 프로덕트 프로젝트에서는 사용되지 않는다생성하기
- 이름과 호스트가 겹치는 계정이 여러개 존재할 수 없음(이름만 겹치는 계정은 여러개 존재 가능)
새로운 사용자를 생성하기 위해 아래 쿼리를 실행create user `이름`@`호스트` identified by '비밀번호';
이름과 호스트는 구성요소임으로 백틱(`)으로 감싼다
비밀번호는 문자열임으로 홀따옴표(')로 감싼다.
가령, 사용자 이름이 study이고, 호스트가 localhost이며, 비밀번호가 test1234인 사용자를 생성하기 위해 아래 쿼리 실행create user `study`@`localhost` identified by 'test1234';
조회하기
존재하는 사용자를 조회하기 위해 아래 쿼리 실행
select `user`, `host` from `mysql`.`user`;
수정하기
존재하는 사용자의 비밀번호를 수정하기 위해 아래 쿼리를 실행
altet user `이름`@`호스트` identified by '새 비밀번호';
삭제하기
- 해당 작업은 취소될 수 없음
- 존재하는 사용자를 삭제하기 위해 아래 쿼리 실행drop user `이름`@`호스트`; drop user `study`@`localhost`;
권한
- 사용자 이름과 호스트별로 구분하여 권한을 달리 부여할 수 있다.
- 사용자 생성 후 아무런 권한을 부여하지 않을 경우 단순 접속(usage)권한이 부여됨부여하기
- 존재하는 모든 사용자에게 권한을 부여하기 위해 아래와 같이 명령
grant [all|부여할 권한, ...] on [*|스키마].[*|테이블] to `사용자 이름`@`호스트` [with grant option]?;
부여할 권한 대신 all 키워드를 사용할 경우 모든 권한을 부여하게 된다. 단, grant 명령을 실행할 권한은 여기에 포함되지 않는다.
권한을 부여할 대상이 되는 스키마 및 테이블의 이름 대신 애스터리스크(*)를 작성할 경우 모든 스키마 및 모든 테이블을 의미한다.
with grant option을 추가하게 되면 해당 사용자가 다른 사용자(혹은 본인)에게 권한을 부여할 수 있는 권한까지 부여하게 됨으로 유의해야 한다.
가령, study@localhost 사용자에게 모든 스키마 및 모든 테이블에 대해 모든 권한(grant 제외)을 부여하기 위해 아래와 같이 명령grant all on *.* to `study`@`localhost`;
조회하기
- 현재 접속중인 사용자의 권한을 조회하기 위해 아래 쿼리 실행
show grants;
다른 사용자의 권한을 조회하기 위해 아래 쿼리 실행show grants for `이름`@`호스트`;
철회하기
존재하는 사용자가 가지고 있는 권한을 철회하기 위해 아래 쿼리 실행
revoke [all|철회할 권한,...][, grant option]? on [*|스키마].[*|테이블] from `사용자 이름`@`호스트`;
만약 해당 사용자에게 grant 권한이 있고, 해당 권한을 철회하고 싶다면 on 키워드 전에 grant option을 명시해야 함
가령, study@localhost 계정으로부터 grant를 포함한 모든 권한을 철회하고자 한다면 아래와 같이 명령revoke all, grant option on *.* from `study`@`localhost`;
728x90반응형'DBMS > MariaDB' 카테고리의 다른 글
MariaDB 함수 (0) 2024.02.25 MariaDB 연산자 (0) 2024.02.23 MariaDB 열과 행 (0) 2024.02.23 MariaDB 스키마와 테이블 (0) 2024.02.23