사용자에게 MySQL 보기만 볼 수 있는 권한을 부여하려면 아래 구문을 사용하십시오.
GRANT SELECT ON yourDatabaseName.yourViewName TO ' yourUserName@'yourLocalHost';
먼저 테이블의 모든 뷰 이름을 표시해야 합니다. 구문은 다음과 같습니다 -
SHOW FULL TABLES IN yourDatabaseName WHERE TABLE_TYPE LIKE 'VIEW';
이제 위의 구문을 구현하여 데이터베이스의 모든 보기를 표시합니다. 여기서는 데이터베이스 이름 'test'를 사용하고 있습니다. 쿼리는 다음과 같습니다 -
mysql> SHOW FULL TABLES IN test WHERE TABLE_TYPE LIKE 'VIEW';
다음은 출력입니다 -
+-------------------------------+------------+ | Tables_in_test | Table_type | +-------------------------------+------------+ | empidandempname_view | VIEW | | empinfoview | VIEW | | lookuptable | VIEW | | view_student | VIEW | | viewemployeeidandemployeename | VIEW | +-------------------------------+------------+ 5 rows in set (0.00 sec)
MySQL.user 테이블의 모든 사용자 이름과 호스트를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select user,host from MySQL.user;
다음은 출력입니다 -
+------------------+-----------+ | user | host | +------------------+-----------+ | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | Adam Smith | localhost | | User1 | localhost | | am | localhost | +------------------+-----------+ 9 rows in set (0.00 sec)
사용자와 호스트를 모두 부여합니다. 이제 데이터베이스 'test'를 사용하고 보기는 'viewemployeeidandemployeename'입니다. 이를 'Adam Smith'@'localhost'에게 부여하기 위한 쿼리는 다음과 같습니다. -
mysql> GRANT SELECT ON test. viewemployeeidandemployeename TO ' Adam Smith'@'localhost'; Query OK, 0 rows affected (0.18 sec)