등록된 계정 확인
# mysql 데이터베이스 접근, 최초 한 번만 사용.
use mysql;
-- 등록되어있는 계정 조회. password는 암호화되어 정확한 확인이 불가
SELECT host, user, password FROM user;
계정 생성
-- 사용방법
CREATE user '아이디'@'접근허용 ip' IDENTIFIED BY '비밀번호';
-- local 환경에서만 접근 허용할 때 -> 'localhost'
CREATE user 'temp_id'@'localhost' IDENTIFIED BY 'abcd';
-- 외부 모든 ip에서 접근 허용할 때 -> '%'
CREATE user 'temp_id'@'%' IDENTIFIED BY 'abcd';
-- 외부의 특정 ip만 접근 허용할 때 -> 예시: '192.20.1.1'
CREATE user 'temp_id'@'192.20.1.1 IDENTIFIED BY 'abcd';
-- 외부의 특정 ip 대역만 접근 허용할 때 -> 예시: '192.20.1.1'~'192.20.1.10'
CREATE user 'temp_id'@'192.20.1.%' IDENTIFIED BY 'abcd';
계정 삭제
-- 사용 방법 1 (DDL)
DROP user '아이디'@'접근허용ip';
-- 예시1 (DDL)
DROP user '아이디'@'접근허용ip';
-- 사용 방법 2 (DML)
DELETE FROM user WHERE user='아이디';
권한 부여
-- 사용 방법1: 모든 권한을 부여 (대괄호는 실제 사용X)
GRANT ALL PRIVILEGES ON [스키마이름].[테이블이름] TO '아이디'@'접근허용ip';
-- 예시1: "모든 DB"의 "모든 테이블"에 대한 "모든" 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'temp_id'@'%';
-- 예시2: 특정 DB의 특정 테이블에 대한 "모든" 권한 부여
GRANT ALL PRIVILEGES ON [스키마이름].[테이블이름] TO 'temp_id'@'%';
-- 사용 방법2: 특정 권한을 부여 (대괄호는 실제 사용X)
GRANT 특정 권한 ON [스키마이름].[테이블이름] TO '아이디'@'접근허용ip';
-- 예시1: 특정 DB의 특정 테이블에 대한 SELECT, UPDATE, INSERT 권한 부여
GRANT SELECT, UPDATE, INSERT ON [스키마이름].[테이블이름] TO 'temp_id'@'%';
-- 예시2: 특정 DB의 특정 테이블의 특정 컬럼에만 UPDATE 권한 부여
GRANT UPDATE(특정 컬럼1, 특정 컬럼2, 특정 컬럼3) ON [스키마이름].[테이블이름] TO 'temp_id'@'%';
-- 수정사항 반영
FLUSH PRIVILEGES;
권한 조회
SHOW GRANTS FOR '사용자명'@'호스트';
권한 삭제
-- 사용 방법 (대괄호는 사용 X)
REVOKE [제거할 권한] PRIVILEGES ON [스키마이름].[테이블이름] FROM '아이디'@'접근허용ip';
-- 예시1: 모든 권한 제거 (특정 DB의 모든 테이블)
REVOKE ALL PRIVILEGES ON TEMP_DB.* FROM 'temp_id'@'192.20.1.1';
-- 예시2: 특정 권한 제거 (특정 DB의 특정 테이블)
REVOKE SELECT PRIVILEGES ON TEMP_DB.TEMP_TABLE FROM 'temp_id'@'192.20.1.1';
-- 수정사항 반영
FLUSH PRIVILEGES;
권한 삭제 (MariaDB)
REVOKE ALL PRIVILEGES, GRANT OPTION FROM '아이디'@'접근허용ip';