*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*
1. Diagram
데이터베이스에서 다이어그램은 시각적으로 정보를 전달하기 위해 사용되는 그래픽 표현입니다. 주로 테이블 간의 관계, 구조, 데이터의 흐름 등을 보여주고 설명하기 위해 사용합니다. 다이어그램 사용하는 방법은 다음과 같습니다.
2. ERD
ERD(Entity-Realationship Diagram)에서 Entity는 데이터베이스에 있는 정보를 나타내는 것으로, 실제 식별 가능한 개체나 사물을 의미합니다. entity는 database에서 table로 표현되는데, 해당하는 database의 table의 행들의 집합으로 생각할 수 있습니다. 보통 ERD에서 entity는 diagram안의 사각형으로 표현되며, attributes(속성)은 특성이나 데이터를 나타내고, 사각형 안에 나열됩니다.
3. MySQL 사용자
MySQL에서 사용자(user)는 데이터베이스 시스템에 접근할 수 있는 계정을 나타냅니다. 데이터베이스나 테이블에 대한 권한을 가질 수 있으며 다음과 같은 속성을 가집니다.
- Username: 데이터베이스 시스템에 접근할 때, 사용자를 식별하는 고유 이름입니다.
- Password: 사용자가 계정에 접근할 때 필요한 비밀번호로, 암호화되어 보관됩니다.
- Privileges: 사용자가 특정 데이터베이스나 테이블에 대해 수행할 수 있는 작업을 결정하는 권한입니다. 데이터 조작 작업과 데이터베이스 객체 관리하는 작업에 대한 권한을 퐇마할 수 있습니다.
3-1. 사용자 추가하기
- MySQL 8.0 Command Line Client에서 root 계정으로 로그인
- 접속 가능한 사용자 추가하기
- create user 'user_이름'@'localhost' identified by 'password';
- create user 'apple'@'localhost' identified by '1111';
create database apple;
create table apple.member(select * from kdt.member);
- 사용자 목록 조회
- use mysql;
- select user, host from user;
- 할당 권한 상세 옵션
- create, drop, alter: 테이블에 대한 생성, 삭제, 변경 권한
- select, insert, update, delete: 테이블의 데이터를 조회, 삽입, 변경, 삭제에 대한 권한
- all: 모든 권한
- usage: 권한을 부여하지 않고 계정만 생성
- grant privileges on database_이름.table_이름 to 'user_이름'@'localhost';
- grant all on *.* to 'apple'@'localhost';
- grant all on *.* to 'apple'@'%'; # 모든 ip에서 접근이 가능
- flush privileges; (변경사항 즉시 적용)
# apple.member에 select 권한만 가능한 apple 계정을 생성
create user 'apple'@'localhost' identified by '1111';
grant select on apple.member to 'apple'@'localhost';
flush privileges;
# apple 데이터베이스에 모든 권한을 가진 사용자 'superman'을 생성하고 member 테이블에 사용자를 추가
create user 'superman'@'localhost' identified by '1111';
grant all on apple.*to 'superman'@'localhost';
3-2. 사용자 삭제하기
- drop user user_name;
drop user 'superman'@'localhost';
3-3. 사용자 권한 조회하기
- show grants for 'user_name'@'localhost';
show grants for 'superman'@'locahost';
3-4. 사용자 권한 제거하기
- revoke, host_name privileges on *.* from 'user_name'@'localhost';
revoke all privileges on apple.* from 'superman'@'localhost';
'DBMS' 카테고리의 다른 글
DBMS(9)-DB를 이용한 단어장 만들기 (0) | 2024.03.28 |
---|---|
DBMS(8)-트랜젝션과 파이썬으로 MySQL연동 (0) | 2024.03.28 |
DBMS(6)- 서브 쿼리(Sub query)와 뷰(View) (0) | 2024.03.27 |
DBMS(5)- 문자열 함수와 union 연산자 (0) | 2024.03.27 |
DBMS 기초(4)- 계수함수와 정규화, 그룹화 (0) | 2024.03.26 |