2009-09-07 3 views
1

단일 명령문에서 둘 이상의 테이블에 대해 선택 권한을 부여하려면 어떻게합니까?둘 이상의 테이블에 대한 특권 선택

mysql> grant select on dbName.crw_changes to sink; 
Query OK, 0 rows affected (0.02 sec) 

mysql> grant select on dbName.crw_changes, dbName.bs_services to sink; 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' dbName.bs_services at line 1 
+0

이전 질문에 대한 답변을보고 적어도 일부 답변 만 수락하면 좋을 것입니다. –

답변

1

표준 SQL에서는 사용할 수 없습니다. 하나 이상의 사용자가 허용되지만 하나의 테이블 만 허용됩니다.

대부분의 SQL 언어에도 마찬가지입니다. 이 제한에 대한 이유가 있습니다. 특히 1980 년대에는 지금보다 더 관련되었을지라도 별도의 테이블에 대한 사용 권한을 확인하는 것과 관련이 있습니다.

1

수 없습니다. GRANT SELECT는 한 번에 하나의 테이블에서만 작동합니다.

그러나 해결 방법이 있습니다. 다음과 같이 할 수 있습니다 :

위의 내용은 'test'스키마에서 'foo_'로 시작하는 테이블을 추출하여 출력합니다. 그런 다음 해당 이름을 가져 와서 저장 프로 시저 또는 쿼리 빌더 창에 복사하여 붙여 넣을 수 있습니다.

그건 그렇고, 코드는 (나에 의해) 테스트되지 않습니다. 나는 http://lists.mysql.com/mysql/202610에서 가져갔습니다.