View

database 생성, 사용자 추가, 관리

기억디귿 2021. 8. 31. 14:22

데이터 베이스 생성

CREATE DATABASE [db이름] default CHARACTER SET UTF8;

SYS 계정 

  : 데이터베이스 내의 모든 권한을 갖는 최상위 레벨의 사용자

 

SYSTEM 계정

  : SYS 계정으로부터 "DBA권한"을 받은 계정

   새로운 계정을 추가, 변경, 삭제할 수 있다.

   계정별 공간할당, 패스워드관리, 세션관리 등을 할 수 있다.

   데이터베이스 오프젝트는 '계정별로' 생성된다.

   해당 오브젝트를 생성한 사용자가 그 오브젝트의 소유자이다.

 

사용자 생성

CREATE USER [`계정 ID`@`호스트`] identified by ['패스워드']

 + '호스트'에 `%`을 넣으면 모든을 의미한다.

 

사용자 생성시 해당 사용자가 생성하는 객체가 저장될 테이블 스페이스 및 용량을 지정할 수 있다.

create user [`계정 ID`@`호스트`] identified by ['패스워드'] default tablespace [테이블스페이스명]
quota [용량] on appl_data [용량] on system;

  사용자 정보 검색

SELECT host, USER, password FROM mysql.USER;

사용자 생성 이후

사용자 추가 삭제 권한 부여 등의 사용자 관련 변경사항이 있을 때는 이러한 변경사항을 적용하기 위한 명령어가 필요하다.

flush privileges;

사용자 권한 조회

SHOW grants FOR [`계정 ID`@`호스트`]

권한 부여

GRANT [priv_type] ON [DB명].[테이블명] TO [`계정 ID`@`호스트`];

+ 테이블명에 [*]을 넣으면 '모든'을 의미한다.

+ [DB명].[테이블명] 대신에 [*.*]을 넣으면 그냥 권한을 주는 것

+ [priv_type]에는 ALL PRIVILEGES, SELECT, INSERT, DELETE, UPDATE, CREATE, DROP, ALTER, INDEX, CREATE VIEW 등이 있다. 이는 개발자, 설계자, DBA 로 나눌 수 있는데 다음과 같다.

개발자 DELETE, INSERT, SELECT, UPDATE
설계자 ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE,
DBA ALL

+ 뒤에 IDENTIFIED BY를 이용하여 비밀번호를 적어 놓으면, 해당 계정의 비밀번호가 변경된다.

+[호스트]에 '168.100.%'을 넣으면 168.100.X.X등 168.100.으로 시작되는 모든 IP에서 원격 접속을 허용한다.

 

특정 컬럼을 지정하여 권한을 부여할 수도 있다.

예시 > GRANT UPDATE(컬럼1, 컬럼2, 컬럼3) ON [DB명].[테이블명] TO ['계정ID'@'호스트'];

 

사용자 삭제

DROP USER [`계정 ID`@`호스트`];

오류

종종 다음과 같은 오류가 뜬다.

There is no such grant defined for user `계정ID`on host`호스트`

이를 방지하기 위해 flush를 하는 것이다.

 

부여된 권환 제거

REVOKE [priv_type] ON [DB명].[테이블명] FROM [`계정 ID`@`호스트`];
Share Link
reply
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31