728x90
반응형

MySQL 접속 계정 관리 와

 

계정 별 권한설정 방법에 대해 알아보겠습니다.

 

 

 

본문에서 다루는 MySQL 버전은 5.6 버전이며 

 

5.7 버전부터 일부 변경 된 사항이 있으므로 참고바랍니다!

 

 

 

 

mysql -u root -p 를 입력하여 MySQL 에 접속합니다.

 

 

 

 

 

 

 

그 다음, 스키마를 mysql 로 변경하겠습니다.

 

 

use mysql;  를 입력합니다. 

 

지금부턴 SQL 질의문 이기 때문에 마지막에 세미콜론(;) 을 붙여주셔야 합니다.

 

 

 

 

 

 

mysql 스키마에 테이블 구성을 알아보겠습니다.

 

show tables; 를 입력합니다.

 

 

여기서 계정에 관련 된 정보를 관리하는 테이블은 

 

user 테이블 입니다.

 

 

 

 

select host, user, password from user; 를 입력하여 

 

계정정보를 조회 해보겠습니다.

 

-------

 확인사항: MySQL 5.7 부터 user 테이블에 password 컬럼이 삭제되고 

 

authentication_string 컬럼으로 변경.

 

MySQL 5.7 Reference 참고 

 

https://dev.mysql.com/doc/refman/5.7/en/grant-tables.html 

 

 

 

 

 

현재는 root 계정밖에 존재하지 않습니다.

 

 

 

그럼 새로운 계정을 하나 추가 해보겠습니다.

 

create user '계정아이디'@localhost identified by '비밀번호';  를 입력합니다.

 

 

 

Query OK, 문구가 뜨면 이상없이 계정추가가 되었음 을 말합니다.

 

 

 

제대로 추가되었는지 

 

select host, user, password from user; 로 조회 해보겠습니다.

 

 

정상적으로 추가되었습니다.

 

 

헌데 방금 만든 계정은 localhost(로컬) 에서 만 접속할 수 있습니다.

 

즉, 외부IP 에서는 접속할 수 없습니다.

 

이 경우 host 를 '%'로 해주면 외부에서의 접속을 허용한다는 설정이 됩니다.

 

 

방금 전 create user '계정아이디'@localhost identified by '비밀번호';  에서

 

 localhost 부분을 지우고 '%'로 변경합니다.

 

 

create user '계정아이디'@'%' identified by '비밀번호'; 

 

 

 

 

host 를 '%' 로 주면 모든 외부 IP에서 접속할 수 있습니다.

 

만약 특정 IP 대역에서만 접속하게 설정하려면 'IP대역.%'  로 주면 됩니다.

 

예) '172.168.%'  -> IP 가 172.168.xxx.xxx  에서만 접속 가능

 

 

 

 

 

 

이번엔 계정을 삭제하는 방법에 대해

 

알아보겠습니다.

 

 

 

빨간 테두리가 계정 삭제를 하는 SQL 질의 입니다.

 

delete from user where user='dubbingLee';

 

계정ID가 dubbingLee 인 아이디를 찾아서 삭제.

 

 

 

 

정상적으로 삭제되었습니다.

 

 

 

 

 

 

아까는 특정IP 일 경우 접속가능하게 제한하는 설정만 해봤는데

 

해당 계정이 특정 스키마에 만 접근할 수 있게 권한을 부여할 수도 있습니다.

 

 

스키마 권한 제어에는 SQL 명령어 중 DCL (Data Control Language) 이 사용됩니다.

 

*DCL 종류에는 GRANT 와 REVOKE 이 있습니다.

 

 

 

 

create schema testDB; 를 입력하여

 

testDB 스키마를 만든 뒤, use testDB; 를 입력하여

 

사용 스키마 변경을 하겠습니다.

 

 

 

 

 

그 다음, grant all privileges on '스키마명'.'테이블명' to '계정명'@'호스트' identified by '계정비밀번호' with grant option; 

 

입력하여 특정 스키마의 테이블에만 접근할 수 있는 계정을 만들겠습니다.

 

 

위 질의문은 dubbingLee 계정을 만들고, 외부 IP에서 접속가능하며,

 

 해당 계정권한을 testDB 스키마에 모든 테이블에서 select, insert, update, delete 할 수 있게 한다.

 

입니다.

 

 

 

*만약 계정에 select(조회) 권한만 주고 싶다면 다음과 같이 입력하면 됩니다.

 

grant select privileges on 'DB명'.'테이블명' to '계정명'@'%' identified by '계정비밀번호' with grant option;

 

 

 

flush privileges; 를 입력하여 권한 적용을 합니다.

 

 

 

권한이 제대로 부여됐는지 확인 해보겠습니다.

 

show grants for '계정명'@'호스트';  를 입력합니다.

 

 

 

조회한 계정의 권한이 나왔습니다. 

 

방금 위에서 설정한 권한이 제대로 적용된 걸 확인하였습니다.

 

 

 

 

계정에 부여된 권한을 제거하는 방법에 대해 알아보겠습니다.

 

revoke all on '스키마명'.'테이블명' from '계정명'@'호스트'; 를 입력합니다.

 

 

 

 

 

권한이 제대로 제거됐는지 확인 해보겠습니다.

 

show grants for '계정명'@'호스트';  를 입력합니다.

 

 

 

 

처음에 설정한 권한이 빠진 것을 확인하였습니다.



728x90
반응형
728x90
반응형

mysql> show databases;

 

** user 확인

mysql> select user, host from mysql.user;

 

+------------------+-----------+

| user             | host      |

+------------------+-----------+

| root             | 127.0.0.1 |

| root             | ::1       |

| debian-sys-maint | localhost |

| root             | localhost |

| root             | ubuntu    |

+------------------+-----------+

5 rows in set (0.00 sec)

 

 

 

** 사용자 계정 추가 및 권한 부여

https://dev.mysql.com/doc/refman/5.5/en/adding-users.html

http://zetawiki.com/wiki/MySQL%EC%97%90_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9

 

- localhost 에서만 접속가능한 사용자명 tester, 사용자암호 tester1234 만들기.

mysql> create user 'tester'@'localhost' identified by 'tester1234';

Query OK, 0 rows affected (0.00 sec)

 

$ mysql -utester -p

Enter password:

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

+--------------------+

1 row in set (0.00 sec)

 

mysql> create database testerdb;

ERROR 1044 (42000): Access denied for user 'tester'@'localhost' to database 'testerdb'

mysql>

 

 

** 부여된 권한보기

mysql> show grants for tester@localhost;

+----------------------------------------------------------------------------+

| Grants for tester@localhost                                                |

+----------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'tester'@'localhost' IDENTIFIED BY PASSWORD <secret> |

+----------------------------------------------------------------------------+

1 row in set (0.00 sec)

 

 

- localhost 에서 접속하는 tester 사용자에게 모든 권한 부여

mysql> grant all privileges on *.* to 'tester'@'localhost' with grant option;

Query OK, 0 rows affected (0.00 sec)

 

$ mysql -utester -p

Enter password:

 

mysql> create database testerdb;

Query OK, 1 row affected (0.00 sec)

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| myschool           |

| mysql              |

| performance_schema |

| testerdb           |

+--------------------+

5 rows in set (0.00 sec)

 

mysql>

 

 

-- 모든 곳에서 접속가능한 사용자명 tester, 사용자암호 tester1234 만들기.

mysql> create user 'tester'@'%' identified by 'tester1234';

 

모든 곳에서 접속하는 tester 사용자에게 모든 권한 부여

mysql> grant all privileges on *.* to 'tester'@'%' with grant option;

 

-- 사용자 계정 삭제

https://dev.mysql.com/doc/refman/5.5/en/removing-users.html

 

mysql> DROP USER 'jeffrey'@'localhost';

728x90
반응형
728x90
반응형

STS는 Spring Tool Suite의 약어로 이클립스입니다. 이클립스를 변환한 것이라고 생각하면 됩니다. 스프링에 맞게 메뉴를 재구성하여 이클립스 버전별로 운영체제별로 지원합니다. STS는 과거에 설치 버전이 있었는데 여러 가지 문제들이 발생하는 관계로 압축 풀고 사용하는 것만 지원되도록 변경되었습니다. STS는 이클립스보다 용량이 크고 Maven이라는 Build Tool이 탑재되어 있어 조금은 더 무겁게 느껴질 것입니다.

메이븐은 컴파일과 동시에 빌드를 수행할 수 있으며 테스트를 병행하거나 서버 쪽 디플로이자원을 관리할 수 있다는 장점이 있으나 개발자에게 가장 큰 장점은 프로젝트에 필요한 라이브러리와 그 라이브러리들이 의존하는 라이브러리까지 관리할 수 있다는 장점이 있습니다.

특정 라이브러리를 찾아 lib에 추가하고 작업할 때 그 라이브러리들이 쓰는 또 다른 라이브러리까지 찾아서 써야 하는 번거로움을 줄일 수 있습니다.

물론 장점만 있는 것은 아닙니다. 원격 저장소에서 지역 저장소로 다운로드할 때 파일이 결손되는 경우도 있으며 인터넷이 연결이 안 되면 라이브러리가 붙지 않아서 프로젝트가 진행되지 않는 경우도 있습니다.

다운로드를 해서 설치해보도록 하겠습니다.

http://spring.io/ 에 접속합니다.

 

화면을 스크롤 하여 아래쪽으로 내려서 [TOOLS]를 선택하면 최신 버전의 STS를 다운로드할 수 있습니다. 현재 버전은 4.X 버전입니다.

[출처] STS 다운로드 및 사용|작성자 heaves1

 

우리는 조금 이전의 버전을 다운로드해보도록 하겠습니다. 화면을 스크롤 하여 아래쪽으로 내려서 [Spring Tool Suite 3 page]를 선택합니다.

 

[See all versions]를 선택합니다.

[previous Spring Tool Suite 3 versions]를 선택합니다.

 

 

STS 3.9.3. RELEASE 버전을 다운로드할 것이므로 [Based on Eclipse 4.7.2]의 확장 링크 버튼을 눌러 줍니다.

 

windows 64bit를 사용하므로 "WIN, 64BIT" 아래의 "zip"을 클릭하여 다운로드합니다.

다운로드한 zip 파일을 압축을 풀면 [sts-bundle] 폴더가 생길 것입니다. 하위 폴더 중 [sts-3.9.2.RELEASE] 폴더에서 STS.exe를 실행합니다.

 

이클립스와 동일하므로 실행되면 workspace를 별도로 지정한 후 실행해야 합니다. 원하는 폴더를 workspace로 지정한 후 실행합니다. 

728x90
반응형

+ Recent posts