DBMS 안에 기본적인 MySQL 시스템 데이터베이스 보유하고 있고, user 정보는 mysql에서 관리하므로 mysql 데이터베이스로 이동(USE)이 필요하다.
use mysql;
select host, user from user;
#해설: user 테이블에서 A와 B의 정보를 가져오기
User는 내부 사용자 (현재 PC에서 접속 가능한 사용자)
와 외부 사용자 (외부 PC에서 접속 가능한 사용자)
로 나뉜다.
내부 사용자(localhost) 생성
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; /* 'username'이라는 사용자를 'localhost'(현재 PC)에서 접속 가능한 사용자로 생성하고, 해당 사용자의 비밀번호는 'password'로 설정*/ SELECT host, user FROM user; /* 생성된 사용자를 확인하기 위해 mysql.user 테이블에서 호스트(host)와 사용자(user) 정보를 조회 */
Example: 현재 PC에 접속 가능한 사용자(yeji, 1234) 생성하기
create user 'yeji'@'localhost' identified by '1234';
외부 사용자(%) 생성
CREATE USER 'username'@'%' IDENTIFED BY 'password'; /* 'username'이라는 사용자를 모든 호스트에서 접속 가능한 사용자로 생성하고, 해당 사용자의 비밀번호는 'password'로 설정 */
Example: 외부에서 접속 가능한 사용자(yeji, 1234) 생성하기
create user 'yeji'@'%' identified by '5678';
여기서 username은 중복이 될 수 없지만 host 정보(내부/외부)가 다르면 username 중복사용이 가능하다.
내부 사용자(localhost) 삭제
DROP USER 'username'@'localhost' /* 'username'이라는 사용자를 localhost에서 접속 가능한 내부 사용자로부터 삭제 */ # 사용자 테이블에서 삭제된 사용자 확인 SELECT host, user FROM user;
Example: 현재 PC에서 접근 가능한 yeji 계정 삭제하기
drop user 'yeji'@'localhost';
select host, user from user;
외부 사용자(%) 삭제
DROP USER 'username'@'%' /* 'username'이라는 사용자를 어떤 호스트에서든 접속 가능한 외부 사용자로부터 삭제 */ # 사용자 테이블에서 삭제된 사용자 확인 SELECT host, user FROM user;
Example: 외부에서 접근 가능한 yeji 계정 삭제하기
drop user 'yeji'@'%';
select host, user from user;