상세 컨텐츠

본문 제목

[mysql] 간단 db접속 권한 부여, 계정 생성, 테이블 생성 및 조회

develop/database

by devcon 2023. 5. 23. 03:33

본문

728x90
반응형

 

 

[linux] ubuntu 서버에 mysql 간단 설치

오늘은 우리가 생성했던 인스턴스의 ubuntu 서버에 Mysql을 설치해보자 MySQL은?? 인기 있는 관계형 데이터베이스 관리 시스템(RDBMS)로, 오픈 소스 소프트웨어이며 무료로 사용할 수 있다. MySQL은 다양

devconq.tistory.com


리눅스 서버에 mysql을 정상적으로 설치했다면
이제 간단한 세팅을 해보자
 

mysql 접속해서 유저정보 조회

사용 가능한 계정 정보를 조회해보고 
지금은 root 계정으로 접근했으니 
업무적으로 사용하기 위해서는 그에 맞는 계정정보를 등록해줘야 한다. 
 
 

유저정보 등록

여기에서 나는  계정은 dev_admin,
패스워드는 보기 쉽도록 qwerty로 임시로  계정을 등록해봤다
 
등록을 완료했고, 유계정정보를 다시 조회해보면 등록한 계정정보가 정상적으로 조회되는 것을 볼 수 있다.
 
 

계정정보를 등록했다면 이번에는 사용할 데이터 베이스를 등록하기 앞서 
데이터베이스 리스트를 조회해 볼 수 있다. 
 
나는 사용할 데이터베이스 명을 SPRINGDB로 명명해서 생성했다
 
캐시 삭제 후 즉시 리로드를 할 수 있는 "FLUSH PRIVILEGES;" 쿼리도 입력해 즉시 반영해준다.

-- 계정정보 조회
mysql> SELECT User, Host, authentication_string FROM mysql.user;

-- 계정정보 등록
mysql> CREATE USER 'dev_admin'@'localhost' IDENTIFIED BY 'qwerty';
-- CREATE USER 계정명@사용할서버 IDENTIFIED BY 패스워드;

-- 현재 이용가능한 데이터베이스 리스트
mysql> SHOW DATABASES;

-- 데이터베이스 생성
mysql> CREATE DATABASE SPRINGDB;

-- 즉시 반영
mysql> FLUSH PRIVILEGES;

 
이제 사용자와 데이터베이스 등록은 마무리됐다.

 


다음은 권한부여와 간단한 테이블 생성후 조회를 해보자
 

앞서 만든 데이터베이스에 계정명으로 모든 권한을 부여하고 조회해봤다.
 

-- 직접 권한을 지정하여 권한부여 가능
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON SPRINGDB.USER TO dev_admin@localhost;
-- GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON 데이터베이스명.테이블 TO 계정명@사용할서버;

-- 관리자와 같은 경우 모든 권한을 한번에 부여 가능
mysql> GRANT ALL PRIVILEGES ON SPRINGDB.* TO dev_admin@localhost;

-- 모든권한 삭제도, 지정하여 권한 삭제도 가능하다
mysql> REVOKE ALL ON 데이터베이스명.테이블 FROM 계정명@사용할서버;
-- REVOKE DELETE, DROP등등 ON 데이터베이스명.테이블 FROM 계정명@사용할서버;

-- 부여된 권한 확인
mysql> SHOW GRANTS FOR dev_admin@localhost;

 
 
데이터베이스에 간단한 샘플 테이블을 만들어 조회해보도록 하자
 

간단한 유저테이블을 생성쿼리를 실행했으나, 에러가 발생했다
에러문을 살펴보면  No database selected
말그대로 데이터베이스명을 선택해주지 않아 발생한 오류이다
데이터베이스명.테이블명 으로 실행을 다시 해주니 정상적으로 테이블이 생성되었다!
 

CREATE TABLE SPRINGDB.USER
(
	ID VARCHAR(100) NOT NULL PRIMARY KEY COMMENT '아이디',
	NAME VARCHAR(100) NOT NULL COMMENT '이름',
	USER_GROUP VARCHAR(30) NULL COMMENT '사용자그룹',
	PHONE_NUMBER VARCHAR(30) NULL COMMENT '핸드폰번호',
	MEMO VARCHAR(100) NULL COMMENT '메모'
)
COMMENT '사용자' CHARSET=UTF8;

-- 데이터베이스에 생성되어있는 테이블을 조회
mysql> SHOW TABLES FROM 데이터베이스명;

-- 데이터베이스의 테이블 조회
mysql> SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '데이터베이스명';

 

INSERT INTO SPRINGDB.USER(ID, NAME, USER_GROUP, PHONE_NUMBER, MEMO) VALUES('ADMIN','어드민','Admin','010-1234-5678','test memo');

INSERT INTO SPRINGDB.USER(ID, NAME, USER_GROUP, PHONE_NUMBER, MEMO) VALUES('USER1','유저1',null,'010-1111-2222',null);

INSERT INTO SPRINGDB.USER(ID, NAME, USER_GROUP, PHONE_NUMBER, MEMO) VALUES('USER2','유저2','Admin','010-0033-0000', '사용자메모');

테스트용으로 생성해본 테이블에 데이터를 3건 인서트했고 
테이블 조회해보니 정상적으로 조회가 되고 있는것을 볼 수 있다.
 
이제 리눅스서버에 데이터베이스를 세팅해두었으니 
다음에는 springboot 프로젝트와 연동하여 CRUD하는 내용을 확인해보자
 
 
 
 

728x90
반응형

관련글 더보기

댓글 영역