2010-04-19 27 views

Trả lời

56

Nếu tôi sử dụng back-tics thay vì dấu nháy đơn trong cú pháp, nó dường như chỉ làm việc tốt:

grant all on `projectA\_%`.* to `projectA`@`%`; 
+3

chỉ cần tên cơ sở dữ liệu, không phải người dùng – glarrain

+1

Điều này không có tác dụng khi tôi sử dụng' tên bảng cụ thể' thay vì '*' ví dụ '' cấp tất cả cho 'projectA%'. 'some_table%' tới 'some_user' @'% ';' ' –

10
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd'; 

yêu cầu quay lại đối với tên cơ sở dữ liệu

Đã chỉnh sửa: Hiện tại, dấu gạch dưới bị thoát.

2

Theo tài liệu GRANT MySQL:

Các “_” và “%” ký tự đại diện được phép khi xác định tên cơ sở dữ liệu trong báo cáo CẤP rằng cấp ưu đãi tại các mức toàn cầu hay cơ sở dữ liệu. Ví dụ: điều này có nghĩa là nếu bạn muốn sử dụng ký tự “_” như một phần của tên cơ sở dữ liệu, bạn nên chỉ định nó là “\ _” trong câu lệnh GRANT để ngăn người dùng truy cập cơ sở dữ liệu bổ sung phù hợp với mẫu ký tự đại diện; ví dụ: GRANT ... ON `foo \ _bar`. * ĐỂ ....

Các vấn đề liên quan