MySQL에서 사용자 계정을 생성하는 방법은 무엇인가요?
_____A1: MySQL에서 사용자 계정을 생성하려면 다음 명령어를 사용합니다.
```sql
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
```
예를 들어, 로컬 호스트에서 접속하는 `testuser`라는 사용자 계정을 비밀번호 `testpass`로 생성하려면:
```sql
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpass';
```
---
Q2: 사용자 계정을 생성할 때 `host` 부분은 무엇을 의미하나요?
A2: `host`는 사용자가 MySQL 서버에 접속할 수 있는 호스트를 지정합니다.
- `'localhost'`는 해당 서버에서만 접속 가능
- `'%'`는 어떤 호스트에서든 접속 가능
- 특정 IP나 도메인도 지정할 수 있습니다.
예: `'user'@'192.168.1.100'`
---
Q3: 사용자에게 권한을 부여하려면 어떻게 해야 하나요?
A3: 계정 생성 후 권한 부여는 `GRANT` 명령을 통해 진행합니다. 예:
```sql
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
```
변경 사항 적용을 위해서는:
```sql
FLUSH PRIVILEGES;
```
단, MySQL 8.0 이상에서는 `CREATE USER`와 `GRANT`를 별도로 수행해야 합니다.
---
Q4: 한 번에 사용자 생성과 권한 부여를 같이 할 수 있나요?
A4: 과거 버전에서는 `GRANT` 문만으로도 사용자를 생성하고 권한을 부여할 수 있었지만, MySQL 8.0 이상부터는 `CREATE USER`와 `GRANT`를 별도로 수행하는 것이 권장됩니다. 그래서 일반적으로는 먼저 `CREATE USER`로 생성하고, 그 후 `GRANT`로 권한을 줍니다.
---
Q5: MySQL에서 비밀번호 정책을 적용하고 싶으면 어떻게 하나요?
A5: MySQL은 플러그인으로 비밀번호 정책을 지원합니다. 예:
```sql
```
또한, `validate_password` 플러그인을 활성화하여 비밀번호 복잡도를 조절할 수 있습니다.
---
Q6: 생성한 사용자를 삭제하려면 어떻게 하나요?
A6: 사용자 삭제는 다음 명령어로 합니다.
```sql
DROP USER 'username'@'host';
```
---
Q7: 계정 생성 후 권한이 적용되지 않는 것 같은데, 어떻게 해야 하나요?
A7: 일반적으로 `CREATE USER`와 `GRANT` 명령어 실행 후 자동으로 권한 적용됩니다. 만약 변경 사항이 바로 적용되지 않으면:
```sql
FLUSH PRIVILEGES;
```
명령어를 실행해 권한 캐시를 갱신합니다.
---
Q8: 비밀번호 없이 사용자 계정을 생성할 수 있나요?
A8: 가능은 하지만 보안상 권장하지 않습니다. 비밀번호 없이 생성하려면:
```sql
CREATE USER 'username'@'host';
```
단, 접속 시 인증 문제가 발생할 수 있으므로 되도록 비밀번호를 지정하세요.
---
Q9: 사용자 계정의 비밀번호를 변경하려면 어떻게 하나요?
A9: 비밀번호 변경은 다음과 같이 합니다.
```sql
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
```
---
Q10: MySQL 관리자(root) 권한이 없이 계정을 생성할 수 있나요?
A10: 사용자 생성과 권한 부여는 해당 서버 내에서 충분한 권한이 있어야 합니다. 보통은 `root` 또는 적절한 권한을 가진 계정으로 로그인해야 사용자 생성이 가능합니다. 일반 사용자 권한으로는 불가능합니다.
작성자:
최예진 [비회원]
| 작성일자: 1년 전
2024-09-20 08:05:22
조회수: 187 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 187 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.