-
Database 사용자 생성과 권한 주기웹 프로그래밍/BE(Back-End) 2021. 6. 10. 21:43
오늘은 국비지원교육에서 sql을 배웠을 때는 못배웠던 것인데 이번 강의를 통해 알게된 것이 있어 정리해보려고 한다.
일단은 방법을 설명하고 이렇게 사용자 생성과 권한을 주면 어떠한 점에서 쓰이는지 설명해보려고 한다.
방법은 cmd를 실행시키고 mysql모드로 변경 후,
(mysql모드로 변경 방법: mysql –uroot -p)
먼저 유저 정보를 아래의 명령문을 통해 만든다. 사용자ID와 비밀번호는 본인이 원하는 것으로 설정하면 된다.create user '사용자ID'@'%' identified by '비밀번호';
create user '사용자ID'@'localhost' identified by '비밀번호';여기서 2개의 명령문이 무엇이 다른지 궁금할텐데
@’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미이다.
그 후, 본인이 권한을 주고 싶은 db에게 권한을 주도록 설정하면 되는데 설정 방법은 아래의 명령문을 입력하면 된다.
flush privileges는 DBMS에게 적용을 하라는 의미이다.grant all privileges on DB명.* to '사용자ID'@'localhost';
grant all privileges on DB명* to '사용자ID'@'%';
flush privileges;이렇게 설정을 완료하면 제대로 됐는지 확인하기 위한 절차는 아래와 같다.
먼저, mysql모드에서 빠져나와 기본 cmd명령모드로 돌아온다.
(mysql모드 빠져나오는 방법: quit를 입력하거나 exit입력)
그 후, 아래의 명령문을 입력한다.
mysql –h호스트명 –uDB에설정한사용자ID –p 데이터베이스이름
(보통의 경우에 호스트명은 127.0.0.1이다.)
정상적으로 실행됐다면 아래와 같이 보일 것이고 그러면 설정에 성공한 것이다.
그러면 이렇게 Database에 사용자 생성과 권한 주는 것은 어떻게 쓰일까?바로 JDBC에서 DB에 connection할 때 설정한 사용자 ID와 password를 이용하게 된다.
데이터베이스에 connection하는 코드는 다양하지만 부스트코스에서 배운 코드를 보면 아래와 같다.
Connection conn = DriverManager.getConnection(dburl, dbUser, dbpasswd);
이렇게 dburl과 함께 위에서 데이터베이스에 설정한 사용자ID와 password를 인자로 사용하여 connection을 이루게 된다.
추가사항
강의에 달린 댓글을 보며 얻은 내용인데 mysql 8버전을 사용한다면
dburl은 "jdbc:mysql://localhost:3306/db명?serverTimezone=Asia/Seoul&useSSL=false" 으로 설정하면 된다!!
'웹 프로그래밍 > BE(Back-End)' 카테고리의 다른 글
AWS EC2 이용해보기 (0) 2021.06.30 Web Crowling & Web Scraping (0) 2021.06.28 EL(Expression Language)과 JSTL(JSP Standard Tag Library) (0) 2021.06.04 JSP와 SCOPE 접해보기 (0) 2021.06.03 Tomcat 접해보기 (0) 2021.05.28