User
CREATE USER
- https://dev.mysql.com/doc/refman/8.0/en/create-user.html
- https://dev.mysql.com/doc/refman/8.0/en/account-names.html
CREATE USER <user>@<host> [<auth_option>]
<auth_option>
IDENTIFIED BY <password>
CREATE ROLE
- https://dev.mysql.com/doc/refman/8.0/en/create-role.html
- https://dev.mysql.com/doc/refman/8.0/en/role-names.html
CREATE ROLE <role>
GRANT
GRANT
<privilege_type> [(<column> [, <column>])]
, [<privilege_type> [(<column> [, <column>])]]
ON [TABLE | FUNCTION | PROCEDURE] <privilege_level>
TO <user | role>
[WITH GRANT OPTION]
<privilege_type>
<privilege_level>
<table>
<database>.<table>
<database>.<routine>
- 이름 대신
*
을 사용할 수 있습니수
WITH GRANT OPTION
: 다른 사용자에게 자신이 부여받은 권한을 부여 할 수 있는 권한을 부여합니다
GRANT <role>, [,<role>]
TO <user | role>, [,<user | role>]
[WITH ADMIN OPTION]
FLUSH PRIVILEGES
REVOKE
권한 관리
<database>_admin
GRANT ALL ON <database>.* TO <database>_admin
<database>_writer
GRANT INSERT, UPDATE, DELETE ON <database>.* TO <database>_writer
<database>_reader
GRANT SELECT ON <database>.* TO <database>_reader