반응형
show grants;
를 실행하면 데이터베이스에 대한 모든 권한이있는 사용자로 로그인되었음을 나타냅니다.
show table status;
를 실행하면 오류가 발생합니다. 그리고 오류는 내가 로그인 한 사용자 이름을 표시하지 않습니다!
이 명령에 대해 mysql이 내가 누군지 잊어 버리는 것과 같습니다. 다른 select 문은 잘 작동합니다. 누구든지 이것을 설명 할 수 있습니까? 어떻게 고치는 지? 감사.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.13-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants;
+---------------------------------------------------------------------------------------------------------------------+
| Grants for php@localhost |
+---------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'php'@'localhost' IDENTIFIED BY PASSWORD '*8F5FF90079BC601F8EA7C148475658E65A0C029D' |
| GRANT ALL PRIVILEGES ON `sunflower_work`.* TO 'php'@'localhost' |
| GRANT ALL PRIVILEGES ON `news_demo`.* TO 'php'@'localhost' |
| GRANT ALL PRIVILEGES ON `news_base`.* TO 'php'@'localhost' |
+---------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)
mysql> show table status from sunflower_work;
ERROR 1143 (42000): SELECT command denied to user ''@'%' for column 'uid' in table 'users'
mysql>
업데이트 ... Tomalak이 제안한대로 사용자를 삭제하고 더 완전한 권한과 비밀번호없이 다시 생성했습니다. 여전히 문제는 지속됩니다. 이제 다음과 같이 보입니다.
mysql> show grants;
+--------------------------------------------------+
| Grants for php@localhost |
+--------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'php'@'localhost' |
+--------------------------------------------------+
1 row in set (0.00 sec)
mysql> show table status;
ERROR 1143 (42000): SELECT command denied to user ''@'%' for column 'uid' in table 'users'
mysql>
해결 방법
문제는 아마도 데이터베이스에 VIEWS가 있다는 것입니다. 보기는 특정 권한으로 생성 될 수 있습니다.
오류 메시지를 통해 알 수 있듯이 로그인 한 사용자와 다른 사용자에 대해 불평합니다. 뷰의 경우 뷰가 데이터를 볼 수있는 권한을 결정하는 방법을 지정할 수 있기 때문입니다.
데이터베이스로 이동하면 다음을 입력 해보십시오.
SHOW FULL TABLES IN sunflower_work WHERE TABLE_TYPE NOT LIKE '%table%';
그런 다음 거기에있는 특정 견해의 권리를 조사 할 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/6527599
반응형
'MySql' 카테고리의 다른 글
MySQL MYSQL : 쉼표 뒤 10 자리 정확도의 DECIMAL (0) | 2020.10.05 |
---|---|
MySQL 소켓을 통해 로컬 MySQL 서버에 연결 (0) | 2020.10.05 |
MySQL mysql 쇼 테이블로; 대소 문자를 무시하면서 테이블 이름으로 정렬 할 수 있습니까? (0) | 2020.10.05 |
MySQL $ wpdb-실패시 무엇을 반환합니까? (0) | 2020.10.05 |
MySQL C #을 사용하는 MySQL에 대한 매개 변수화 된 쿼리 (0) | 2020.10.05 |
댓글