티스토리 뷰

MySQL 데이터베이스 생성, 조회, 삭제사용자 생성, 권한 설정 방법


데이터베이스 생성과 조회, 삭제


데이터베이스 생성 하려면 CREATE DATABASE문을 사용합니다. 데이터베이스명은 최대 64바이트입니다. 문자형식은 utf8, 콜레이션(데이터 정렬)은 utf8_general_ci로 하겠습니다.


▶ CREATE DATABASE 데이터베이스명 CHARACTER SET 문자형식 COLLATE 콜레이션명;





"CREATE DATABASE studydb CHARACTER SET utf8 COLLATE utf8_general_ci;"라고 입력했습니다. 데이터베이스명을 "studydb"로 했습니다. 생성된 데이터베이스를 확인하려면 SHOW DATABASES문을 사용합니다.


▶ SHOW DATABASES;





"studydb"가 표시되는 것을 확인할 수 있습니다. 데이터베이스를 삭제 하려면 DROP DATABASE문을 사용합니다.


▶ DROP DATABASE 데이터베이스명;




데이터베이스 삭제 후에 "SHOW DATABASES;"로 확인해보니 "studydb"가 사라진 것을 알 수 있습니다.





사용자 생성과 권한 설정


데이터베이스를 조작할 사용자를 생성하고, 등록된 사용자가 서버를 조작할 권한을 설정하는 방법을 알아보겠습니다.


사용자를 생성 하려면 CREATE USER문을 사용합니다.


▶ CREATE USER '사용자명'@'호스트명' IDENTIFIED BY '패스워드';





사용자명을 "star"로 하고 패스워드는 "111111"로 했습니다. 사용자를 삭제하려면 DROP USER문을 사용합니다. 앞선 데이터베이스와 동일한 형식입니다.


▶ DROP USER '사용자명'@'호스트명';





현재 데이터베이스에 "root" 사용자명으로 로그인한 상태입니다. "root"가 아닌 새로 생성한 "star" 사용자로 다시 로그인하겠습니다. 우선 현재 상태에서 로그아웃을 하려면 "quit" 또는 "exit"을 입력하면 됩니다. "exit"을 입력하여 로그아웃을 한 뒤에 "star"로 다시 로그인하겠습니다.


새로만든 데이터베이스에 접속하려면 USE문을 사용합니다.


▶ USE 데이터베이스명;





에러가 발생합니다. 에러 내용을 보니 "star" 사용자는 "studydb"에 접속을 거부 당했다는 내용입니다. "star" 사용자에게 "studydb"에 접속할 수 있도록 권한을 설정해야 합니다. 데이터베이스 접속 권한을 설정하려면 GRANT문을 사용합니다. GRANT문으로 권한 설정을 마친 뒤에는 FLUSH문을 사용하여 새롭게 설정된 권한을 다시 읽어들이게 합니다.


▶ GRANT 권한 ON 데이터베이스명.* TO '사용자명'@'호스트명';


▶ FLUSH PRIVILEGES;





권한은 모든 권한인 PRIVILEGES로 설정했습니다. "root" 사용자 로그아웃 후 다시 "star" 사용자로 로그인하여 데이터베이스에 접속해보겠습니다.




"Database changed" 표시를 통해 데이터베이스에 접속했음을 알 수 있습니다.




내용 정리


데이터베이스 조작 관련 명령문


데이터베이스 생성 ▶ CREATE DATABASE 데이터베이스명 CHARACTER SET 문자형식 COLLATE 콜레이션명;


데이터베이스 조회 ▶ SHOW DATABASES;


데이터베이스 삭제 ▶ DROP DATABASE 데이터베이스명;


데이터베이스 접속 ▶ USE 데이터베이스명;



사용자 설정 관련 명령문


사용자 생성 ▶ CREATE USER '사용자명'@'호스트명' IDENTIFIED BY '패스워드';


사용자 삭제 ▶ DROP USER '사용자명'@'호스트명';


사용자 권한 ▶ GRANT 권한 ON 데이터베이스명.* TO '사용자명'@'호스트명';  FLUSH PRIVILEGES;