본문 바로가기

DBMS

DBMS(7)- Diagram과 사용자

*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*

1. Diagram

데이터베이스에서 다이어그램 시각적으로 정보를 전달하기 위해 사용되는 그래픽 표현입니다. 주로 테이블 간의 관계, 구조, 데이터의 흐름 등을 보여주고 설명하기 위해 사용합니다. 다이어그램 사용하는 방법은 다음과 같습니다.

Database -> Reverse Engineer 선택
Local instance MySQL, hostname에 localhost 선택
사용하려는 데이터베이스 선택
table objects, view objects 모듈 선택
Diagram 확인

2. ERD

ERD(Entity-Realationship Diagram)에서 Entity는 데이터베이스에 있는 정보를 나타내는 것으로, 실제 식별 가능한 개체나 사물을 의미합니다. entity는 database에서 table로 표현되는데, 해당하는 database의 table의 행들의 집합으로 생각할 수 있습니다. 보통 ERD에서 entity는 diagram안의 사각형으로 표현되며, attributes(속성)은 특성이나 데이터를 나타내고, 사각형 안에 나열됩니다.

위 diagram은 총 8개의 entity가 들어있습니다

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';

Command Line Client 실행
접속 후 비번 입력
접속 가능한 사용자 추가
사용자 목록 조회
show grants for 'apple'@'localhost'; 입력
+ 클릭
connection Name과 username 설정
새로운 사용자 생성