MySQL 읽기전용 유저 생성

셀렉트만 가능한 유저를 생성하는 방법입니다.

다른 용도로도 사용을 하겠지만, 주 용도가 데이터 변경이 되면 안되는 Replication Slave 서버를 핸들링할때 사용합니다.

GRANT SELECT ON *.* to 'readuser'@'%' IDENTIFIED BY 'readonly'

*.* 대신에 접근가능한 database명을 지정해도 됩니다.

한번 테스트를 해보겠습니다. ( delete, update, insert )

# mysql -ureaduser -preadonly

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 58

Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use testdb

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [testdb]> select * from test_table4;


| idx | title |


|   1 | 111   |

|   2 | 222   |

|   3 | 333   |


3 rows in set (0.00 sec)

MariaDB [testdb]> delete from test_table4 where idx = 3;

ERROR 1142 (42000): DELETE command denied to user 'readuser'@'localhost' for table 'test_table4'

MariaDB [testdb]> update test_table4 set title='444' where idx = 4;

ERROR 1142 (42000): UPDATE command denied to user 'readuser'@'localhost' for table 'test_table4'

MariaDB [testdb]> insert into test_table4 value (4,444);

ERROR 1142 (42000): INSERT command denied to user 'readuser'@'localhost' for table 'test_table4'

셀렉트는 가능하지만 삭제, 수정, 추가 기능은 에러가 뜨는 것을 확인할 수 있습니다.

블로그 이미지


가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT