MySQL Users, Privileges

User

create user

create user '[userid]'@'[host]' identified by '[password]'

--localhost
create user 'test_user'@'localhost' identified by '1234'

--특정 ip값에 대한 허용
create user 'test_user'@'111.222.333.444' identified by '1234'

--특정 ip 대역에 대한 허용
create user 'test_user'@'111.222.333.%' identified by '1234'

--모든 ip에 대한 허용
create user 'test_user'@'%' identified by '1234'

여기서 설정하는 host 값에 따라 해당 계정으로의 접근가능한 ip 대역대를 설정할 수 있다.

외부 IP 대역대에 대한 접근은 외부에서 접근을 허용해주는 만큼 제한적으로 적용해야 된다.

delete user

drop user '[userid]'@'[host]'

change password

alter user '[userid]'@'[host]' identified with mysql_native_password '[password]'

Privileges

위의 단계에서 계정을 생성을 하였지만, 막상 해당 유저로 접근해보면 할 수 있는 작업이 아무것도 없다. 이는 해당 계정에 대한 권한을 부여해준 것이 없기 때문이다.

grant privileges

grant [type of privilege] on [db_name].[table_name] to '[userid]'@'[host]';

--모든 db, 테이블에 대해 모든 접근 권한 부여
grant all privileges on *.* to 'test_user'@'%'

--test_db schema에 대해 모든 테이블에 대한 모든 권한 허용
grant all privileges on test_db.* to 'test_user'@'%'

--test_db schema에 대해 test 테이블에 대한 모든 권한 허용
grant all privileges on test_db.test to 'test_user'@'%'

특정 db, table에 대하여 특정 권한들을 부여하는 것이 가능하다.

all, alter, create 등 다양한 권한들을 부여하는 것이 가능하다. mysql privilege에 대한 정보는 mysql_privilege을 참고하면 된다.

revoke privileges

revoke [type of privilege] on [db_name].[table_name] from '[userid]'@'[host]';

유저에게 부여된 권한을 제거하기 위해 revoke을 활용한다.

show grants

show grants for '[user_id]'@'[host]';

태그:

카테고리:

업데이트:

댓글남기기