어떤 MySQL 사용자가 데이터베이스에 액세스 할 수 있습니까?


13

어떤 MySQL 사용자가 데이터베이스에 액세스 할 수 있고 어떤 권한을 가지고 있는지 어떻게 알 수 있습니까?

"권한"을 클릭하면 phpMyAdmin에서이 정보를 얻을 수있는 것 같습니다. . .

                 Users having access to "mydatabase"
User     Host       Type               Privileges              Grant
myuser1  %          database-specific  ALL PRIVILEGES          Yes
root     localhost  global             ALL PRIVILEGES          Yes
myuser2  %          database-specific  SELECT, INSERT, UPDATE  No

. . . 그러나 명령 줄 에서이 쿼리를 수행하는 방법을 알고 싶습니다.

(phpMyAdmin은 종종 실행중인 명령의 SQL 구문을 보여 주지만이 경우 표시되지 않습니다.)

특정 사용자에게 부여 된 것 (예 : "SHOW GRANTS for myuser1")을 묻는 것이 아니라 데이터베이스 이름을 감안할 때 해당 데이터베이스에 액세스 할 수있는 MySQL 사용자 및 해당 권한을 확인하는 방법은 무엇입니까? ? 기본적으로 명령 줄에서 위의 차트를 어떻게 얻을 수 있습니까?

답변:


16

명령에 \ G를 추가하여 'grid'veiw에 결과를 표시 할 수 있습니다.

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;

4
이전에 보지 못한 \ G에 대해 +1
jx12345

8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';

감사. 이 답변은 질문의 차트와 동일한 원시 데이터를 출력하는 것으로 보입니다. . . 읽기 쉽지 않은 형식입니다. 나는 같은 형식으로 데이터를 제시하는 것이 독자의 연습이라고 생각합니다. . . ;)
Philip Durbin

2

가장 좋은 가독성을 제공해야합니다.

select db 'DATABASE', host HOST, user USER from mysql.db where db = '<databasename>';

진료소에 더 기억에 남는 것 :

select db,host,user from mysql.db;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.