02주차 ddl- db를 만들자

20
DDL – 구구구 구구구 구 구구구 구구구 구, [email protected] 구구구구구 구구구구구구구구

Upload: yoonwhan-lee

Post on 25-Jan-2015

1.207 views

Category:

Education


3 download

DESCRIPTION

MySQL 에서

TRANSCRIPT

Page 1: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DDL – 구조를 만들자

웹 데이터 베이스

이 윤 환 , [email protected]

Page 2: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DataBase• 자료를 저장하고 보여주고 관리하는 작업 공간• 문자 저장 방식에 대한 이해 필요

o http://dev.mysql.com/doc/refman/5.1/en/charset-general.htmlo Character Set

• 심볼과 특정 코드로 인코딩 될 규칙들의 집합• Ex) “A”, “B”, “a”, “b”

o “A” = 0, “B” = 1”, “a” = 2, “b” = 3• “A”, “B”, “a”, “b” : 심볼• 0, 1, 2, 3 : 코드

o Collation• Character Set 에서 문자들을 비교하기 위한 규칙들의 집합• Ex) “A” = 0, “B” = 1

o 0 < 1 이므로 “ A” 가 “ㅠ” 보다 작다o 대소문자 비교는 ?

• binary collation : Case-sensitive• 대소문자를 비교하지 않을 경우 : Case-insensitive

이 윤 환 , [email protected]

Page 3: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DataBase• MySQL 에서 지원하는 Character Set

이 윤 환 , [email protected]

Page 4: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DataBase• MySQL 에서 지원하는 Collation

이 윤 환 , [email protected]

Page 5: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DataBase• DB 생성문 : CREATE DATABASE

o http://dev.mysql.com/doc/refman/5.1/en/create-database.htmlo CREATE DATABASE [IF NOT EXISTS] db_name [create_specification]

• Create_specificationo [DEFAULT] CHARACTER SET [=] charset_nameo [DEFAULT] COLLATE [=] collation_name

이 윤 환 , [email protected]

Ex) - DB 명을 test1DB 로 하되 동일한 이름이 있을 경우에만

CHARACTER SET 이 utf8 이 되는 DB 를 생성하시오

Page 6: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

DataBase• DB 제거문 : DROP DATABASE

o http://dev.mysql.com/doc/refman/5.1/en/drop-database.htmlo DROP DATABASE [IF EXISTS] db_name

이 윤 환 , [email protected]

Ex) - 방금 전에 작성한 test1DB 가 있는지 점검하여 해당 db 가 존재하면

제거하시오 .

Page 7: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자• 현대의 DBMS 들은 별도의

사용자를 갖는다 .• MySQL 설치시 시스템

사용자인 ‘ root’ 를 갖는다 .• DBMS 사용자는 시스템 자원

(DB, table, index, view 등 )별로 주어진 권한을 부여 받아 해당 권한에 맞게 DB 에 접근할 수 있다 .o ‘root’ 의 경우 일반 자원 접근

권한과 서버 관리 권한을 모두 부여 받는다 .

• http://dev.mysql.com/doc/refman/5.1/en/privilege-system.html

이 윤 환 , [email protected]

Privilege Column Context

CREATE USER Create_user_priv server administration

PROCESS Process_priv server administration

RELOAD Reload_priv server administration

REPLICATION CLIENT Repl_client_priv server administration

REPLICATION SLAVE Repl_slave_priv server administration

SHOW DATABASES Show_db_priv server administration

SHUTDOWN Shutdown_priv server administration

SUPER Super_priv server administration

ALL [PRIVILEGES]   server administration

USAGE   server administration

관리자 권한

Page 8: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자

이 윤 환 , [email protected]

Privilege Column Context

CREATE Create_priv databases, tables, or indexes

DROP Drop_priv databases, tables, or views

GRANT OPTION Grant_priv databases, tables, or stored routines

REFERENCES References_priv databases or tables

EVENT Event_priv databases

ALTER Alter_priv tables

DELETE Delete_priv tables

INDEX Index_priv tables

INSERT Insert_priv tables or columns

SELECT Select_priv tables or columns

UPDATE Update_priv tables or columns

CREATE TEMPORARY TABLES

Create_tmp_table_priv tables

LOCK TABLES Lock_tables_priv tables

TRIGGER Trigger_priv tables

CREATE VIEW Create_view_priv views

SHOW VIEW Show_view_priv views

ALTER ROUTINE Alter_routine_priv stored routines

CREATE ROUTINE Create_routine_priv stored routines

EXECUTE Execute_priv stored routines

FILE File_priv file access on server host

일반 자원 접근 권한

Page 9: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 추가• 사용자 추가 : CREATE USER

o http://dev.mysql.com/doc/refman/5.1/en/adding-users.htmlo http://dev.mysql.com/doc/refman/5.1/en/create-user.htmlo CREATE USER user_specification

• User_specificationo ‘User_name’@’Host_name’ o [IDENTIFIED BY [PASSWORD] ‘password’]

이 윤 환 , [email protected]

Ex) - 클라이언트가 서버와 같은 호스트에서 접근할 수 있는 사용자

‘ test_user’ 를 암호가 ‘ test_pwd’ 가 되도록 생성하시오 .

Page 10: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 추가

이 윤 환 , [email protected]

Page 11: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 삭제• 사용자 삭제 : DROP USER

o http://dev.mysql.com/doc/refman/5.1/en/drop-user.htmlo DROP USER ‘user_name’@’host_name’;

이 윤 환 , [email protected]

Ex) - 앞선 예에서 생성한 test_user2 를 제거 하시오 .

Page 12: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 테이블• 사용자 테이블은 mysql DB

에 존재• 사용자의 정보와 기본 권한에

대해 저장• use mysql 후 desc user;

를 입력해 보자 .

이 윤 환 , [email protected]

Page 13: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 테이블• test_user 사용자의 정보 출력

이 윤 환 , [email protected]

Page 14: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 권한 부여• 사용자를 생성하였으니 이제 생성된 사용자에게 DB 자원에 대해 권한을

부여해 보자 .• 앞서 설명한 권한들을 주는 과정이다 .• http://dev.mysql.com/doc/refman/5.1/en/grant.html

이 윤 환 , [email protected]

GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level TO user_specification [, user_specification] ... [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}] [WITH with_option ...] object_type TABLE | FUNCTION | PROCEDURE priv_level: * | *.* | db_name.* | db_name.tbl_name | tbl_name db_name.routine_name user_specification user [IDENTIFIED BY [PASSWORD] 'password']

Page 15: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 권한부여

이 윤 환 , [email protected]

Privilege Meaning Privilege Meaning

ALL [PRIVILEGES] Grant all privileges at specified access level except GRANT OPTION

INSERT Enable use of INSERT

ALTER Enable use of ALTER TABLE LOCK TABLES Enable use of LOCK TABLES on tables for which you have the SELECT privilege

ALTER ROUTINE Enable stored routines to be altered or dropped

PROCESS Enable the user to see all processes with SHOW PROCESSLIST

CREATE Enable database and table creation REFERENCES Not implemented

CREATE ROUTINE Enable stored routine creation RELOAD Enable use of FLUSH operations

CREATE TEMPORARY TABLES

Enable use of CREATE TEMPORARY TABLE

REPLICATION CLIENT

Enable the user to ask where master or slave servers are

CREATE USER Enable use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES

REPLICATION SLAVE

Enable replication slaves to read binary log events from the master

CREATE VIEW Enable views to be created or altered SELECT Enable use of SELECT

DELETE Enable use of DELETE SHOW DATABASES Enable SHOW DATABASES to show all databases

DROP Enable databases, tables, and views to be dropped

SHOW VIEW Enable use of SHOW CREATE VIEW

EVENT Enable use of events for the Event Scheduler

SHUTDOWN Enable use of mysqladmin shutdown

EXECUTE Enable the user to execute stored rou-tines

SUPER Enable use of other administrative opera-tions such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debugcommand

FILE Enable the user to cause the server to read or write files

TRIGGER Enable trigger operations

GRANT OPTION Enable privileges to be granted to or removed from other accounts

UPDATE Enable use of UPDATE

INDEX Enable indexes to be created or dropped

USAGE Synonym for “no privileges”

Page 16: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 권한부여

이 윤 환 , [email protected]

Ex) - 앞서 생성한 사용자 ‘ test_user’ 이 만들어 둔 DB ‘test1DB’ 과

하위의 모든 자원에 대해 모든 권한을 갖도록 하시오 .

Page 17: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

사용자 : 추가의 또 다른 방법• GRANT 를 이용하여 사용자를 추가할 수 있다 .• 먼저 ‘ test2DB’ 를 생성해 보자 .

o mysql> CREATE DATABASE test2DB DEFAULT CHARACTER SET = utf8;

• GRANT 문을 이용하여 다음과 같이 입력해 보자 .o mysql> GRANT ALL ON test2DB.* TO 'test_user2'@'localhost' IDENTI-

FIED BY 'test_pwd';

• 이제 다음의 문장등을 통해 생성되었음을 확인해 보자 .o mysql> select * from user where User='test_user2';o mysql> select * from db where db='test2db';

이 윤 환 , [email protected]

Page 18: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

MySQL 접속하기• 윈도우 키 + r 키를 눌러 실행창을 띄우고 cmd 라고 입력합니다 .

• 콘솔 창이 뜨면 ‘ mysql –u 사용자명 – p mysql ‘ 을 입력하고 Enter그 후 Password 입력

이 윤 환 , [email protected]

Page 19: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

개인 활동• DB 를 만들어 봅니다 .

o CHARATER SET 이 utf8 이 되는 DB 를 스스로 만들어 봅니다 .

• 사용자를 추가합니다 .• 추가한 사용자에 대해 기존에 존재하는 DB 의 모든 권한을 갖도록 해

봅니다 .o SELECT 권한만 갖도록도 해 보세요 .

• GRANT 문을 이용하여 사용자를 추가함과 동시에 기존에 존재하는 DB에 모든 권한을 줘 봅니다 .

이 윤 환 , [email protected]

Page 20: 02주차 ddl- db를 만들자

한림대학교 금융정보통계학과

다음 시간에는 …• SQL 에 대해 학습합니다 .

o 실제 자료가 저장되는 TABLE 을 만들어 봅니다 .o MySQL 의 자료형에 대해 이야기 합니다 .

이 윤 환 , [email protected]