사용자 'User'@%'와 'User'@'localhost'가 같지 않습니까?
첫 번째 명령에 따라 사용자를 생성했지만 localhost(linux)를 통해 로그온할 수 없습니다.이 링크 mysqldoc은 명령어 두 번째 블록의 구문을 사용하여 동일한 이름으로 두 번째 사용자를 작성해야 함을 나타냅니다.
mysql> CREATE USER 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON my_upload.* TO 'myuser'@'%' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)
그래서 아래와 같이 시도해보니 효과가 있었습니다.하지만 이 두 사람은 다른 사용자인가요?한쪽의 pw를 변경하면 다른 한쪽이 동기화됩니까?아니면 다른 쪽 사용자가 실제로 다른 쪽입니까?
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY '4myuser';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON my_upload.* TO 'myuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
User@%
모든 장소에서 접속할 수 있습니다. User@localhost
로컬 호스트로부터의 액세스만 허용합니다.2개의 패스워드를 가지는 2개의 다른 유저입니다(같은 패스워드로 설정할 수 있습니다만, 1개의 패스워드를 갱신해도 다른 유저는 자동적으로 갱신되지 않습니다).
기본적으로는 (가능성이) 다른 권한과 (가능성이) 다른 비밀번호를 가진 두 개의 다른 사용자입니다.
- myuser@% : 임의의 호스트에서 접속하는 사용자 myuser.
- myuser@localhost : localhost에서만 접속하는 사용자 myuser.
접속 액세스에 관한 MySQL 매뉴얼을 참조해 주십시오.이 매뉴얼은 접속 액세스의 원리에 대해 설명하고 있습니다.
설명과 같은 상황이 발생하였습니다. - 엔트리를 추가하는 중user@%
동작하지 않았습니다.
그러나 같은 엔트리를 추가하는 중user@localhost
다시 작동하기 시작하겠지만요.우리가 이해한 바에 의하면 이건 의도적인 것이 아닌 것 같았어%
패턴!
위의 Kent에 의해 식별된 문제는 다음과 같습니다.사용자 테이블의 엔트리 행이 있습니다.host:localhost
근데 빈칸이었어요이것은, 다음의 룰로 해결된 것 같습니다.%@localhost
성냥으로 쓰이고 있었어요user@%
규칙.
짧은 답변 - 에 공백 또는 와일드카드 사용자 이름이 있는지 확인합니다.user
테이블.
그 공백이 어떻게 생겼는지, 고의였는지 전혀 모르겠어.
같은 의미라도, 다른 의미도 포함해도, 실제로는 별개의 유저입니다.
GRANT의 MySQL 및 표준 SQL 버전
MySQL과 GRANT의 표준 SQL 버전 간의 가장 큰 차이점은 다음과 같습니다.
- MySQL은 권한을 사용자 이름뿐만 아니라 호스트 이름 및 사용자 이름의 조합과 연결합니다.
언급URL : https://stackoverflow.com/questions/11634084/are-users-user-and-userlocalhost-not-the-same
'programing' 카테고리의 다른 글
특정 행에만 MySQL 권한을 부여하는 방법 (0) | 2022.09.05 |
---|---|
Java를 사용하여 문자열에서 중복된 공백을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.05 |
원인: org.flywaydb.core.api.Flyway Exception:검증에 실패했습니다.마이그레이션 2에 대한 마이그레이션 체크섬 불일치 (0) | 2022.09.05 |
Vue: 등록하기 전에 vuex 스토어에서 사용자 설정 (0) | 2022.09.05 |
Gson을 사용하는 Android에서 @SerializedName 주석의 기본 목적은 무엇입니까? (0) | 2022.09.05 |