Notice
이 글은 다음 강의를 수강한 후 학습한 내용을 정리한 글입니다.
- 강의: [K-MOOC] 단국대학교 오세종 교수님의 '데이터베이스의 이해와 활용'
DBMS가 제공하는 보안 기능 중에 사용자의 계정을 생성하고 권한을 관리하는 기능이 있다.
데이터베이스 관리자가 SQL 문법으로 계정 생성, 관리를 해야 한다.
사용자 계정 생성
CREATE USER 사용자계정명@접속위치
IDENTIFIED BY 비밀번호;
*접속 위치의 예시
- localhost: 사용자가 DBMS가 설치된 컴퓨터를 통해 로그인할 수 있는 것.
- %: 사용자가 외부에서 네트워크를 통해 원격으로 로그인할 수 있게 하는 것.
- 128.10.%: 사용자가 외부에서 로그인할 수 있는데, 그 네트워크 IP 주소가 '128.10'으로 시작하는 컴퓨터를 통해 원격으로 로그인할 수 있다. (접속위치를 회사 안, 국내 안으로 한정할 때 사용함.)
계정 이름은 같더라도 접속 위치에 따라 접속 가능 여부가 달라질 수 있다.
같은 사용자에 대해 회사와 집 두 개의 사용 권한을 설정하려고 한다면 계정을 두 개 생성해야 한다.
사용자 계정의 확인
SELECT mysql.user ;
*워크벤치로 확인하는 방법
Administration > User and Privileges에서 확인 가능하다.
[Add Account]로 사용자 계정을 생성할 수 있다.
Root 계정
Root 계정은 모든 데이터베이스에 대한 모든 권한을 가지고 있는 슈퍼 유저이다.
실제 개발 상황에서는 root 계정으로 개발하지 않는다. 이 계정 정보의 유출을 주의해야 한다.
실제로는 권한을 보다 축소한 관리자 계정을 새로 만들어서 사용한다.
사용자 권한 관리
사용자 계정이 생성된 직후에는 데이터베이스에 로그인하는 권한 외에는 아무 권한도 없다.
- GRANT: 사용자에게 권한 부여
GRANT SELECT, DELTE ON my_deb.emp # 부여할 권한과 데이터베이스이름.객체를 씀.
TO 사용자 계정 또는 역할
[WITH GRANT OPTION] ;
*부여할 권한
- ALL PRIVILEGES: 모든 권한
- 그 외 개별 권한: INSERT, UPDATE, SELECT
*권한을 부여할 객체
- my_db.*
- my_db.emp
*권한 부여 옵션
- with grant option: 권한을 부여받은 사용자 또는 역할이 또 다른 사용자나 역할에게 자신이 받은 권한을 부여할 수 있게 한다.
- REVOKE: 사용자로부터 권한 회수
'데이터베이스' 카테고리의 다른 글
[데이터베이스] 13-1. 트랜잭션 (0) | 2024.01.04 |
---|---|
[데이터베이스] 12-3. 역할 관리 (0) | 2024.01.04 |
[데이터베이스] 12-1. 데이터베이스 보안 (1) | 2024.01.04 |
[데이터베이스] 02-01. 데이터베이스 시스템의 개념 (0) | 2024.01.04 |
[데이터베이스] 02-02. MySQL 문법 맛보기 (0) | 2024.01.04 |