티스토리 뷰

사전지식

데이터베이스 생성

  • 보안을 위해 MySQL(MariaDB)root 계정 접근은 로컬 서버에서만 허용해야 한다. 애플리케이션에서 사용할 데이터베이스를 생성하려면 로컬 서버에서 해당 데이터베이스를 생성하고 애플리케이션 서버에서만 접근할 수 있도록 접근 권한을 부여해야 한다.
# 데이터베이스 로컬 서버 접속 후 root 계정으로 클라이언트 실행
$ sudo mysql -u root -p

# somedb 데이터베이스 생성
mysql> CREATE DATABASE somedb;

# someuser/somepassword 계정에 somedb 데이터베이스의 로컬 접속을 허용
# someuser 계정이 존재하지 않을 경우 자동 생성
mysql> GRANT ALL ON somedb.* TO 'someuser'@'localhost' IDENTIFIED BY 'somepassword';

# someuser/somepassword 계정에 somedb 데이터베이스의 10.0.0.1로부터의 원격 접속을 허용
mysql> GRANT ALL ON somedb.* TO 'someuser'@'10.0.0.1' IDENTIFIED BY 'somepassword';

# someuser/somepassword 계정에 somedb 데이터베이스의 10.0.0.으로 시작하는 모든 원격 접속을 허용
mysql> GRANT ALL ON somedb.* TO 'someuser'@'10.0.0.%' IDENTIFIED BY 'somepassword';

# 앞서 생성한 사용자 정보를 조회
mysql> SELECT * FROM information_schema.user_privileges;
+----------------------------+---------------+-------------------------+--------------+
| GRANTEE                    | TABLE_CATALOG | PRIVILEGE_TYPE          | IS_GRANTABLE |
+----------------------------+---------------+-------------------------+--------------+
| 'someuser'@'localhost'     | def           | USAGE                   | NO           |
| 'someuser'@'10.0.0.1'      | def           | USAGE                   | NO           |
| 'someuser'@'10.0.0.%'      | def           | USAGE                   | NO           |
+----------------------------+---------------+-------------------------+--------------+

# 사용자와 원격지 단위로 상세한 권한 정보를 조회
mysql> SHOW GRANTS FOR 'someuser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for someuser@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'someuser'@'localhost' IDENTIFIED BY PASSWORD '*6444A540558B753711AF5995375B0C14B1257742' |
| GRANT ALL PRIVILEGES ON `somedb`.* TO 'someuser'@'localhost'                                                    |
+-----------------------------------------------------------------------------------------------------------------+

# 앞서 생성한 사용자를 삭제
mysql> DROP USER 'someuser'@'localhost';
mysql> DROP USER 'someuser'@'10.0.2.2';
댓글
댓글쓰기 폼