2012-04-10 58 views
18

Tôi đang cố cấp cho người dùng quyền chạy thủ tục được lưu trữ ở cấp thủ tục được lưu trữ trên Cơ sở dữ liệu MySQL thay vì cho phép người dùng thực hiện bất kỳ thủ tục được lưu trữ nào trong cơ sở dữ liệu. Tôi đã cố gắng để thực hiện đoạn mã sau:Thủ tục lưu trữ MySQL Quyền

GRANT EXECUTE ON myDB.spName TO 'TestUser'@'localhost'; 

Nhưng tôi tiếp tục nhận được lỗi sau:

Illegal GRANT/REVOKE command, please consult the manual to see which privileges can be used.

Tôi đã cố gắng thay đổi nó như sau:

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

Và tôi nhận được một lỗi khác nhau nêu rõ:

Cant find any matching rows in the user table.

Tôi bối rối về nơi tôi đang đi sai?

Cũng trên MySQL Workbench tôi dường như không thể thấy bất kỳ cách nào để cấp quyền ở cấp thủ tục được lưu trữ thông qua GUI. Đây có phải là chính xác hoặc tôi thiếu một cái gì đó?

Xin cảm ơn trước.

Trả lời

27

Nỗ lực thứ hai của bạn là đúng cách để tiến lên e. g

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

nhưng nếu không được kiểm tra làm việc

a) bạn (người dùng để từ đó bạn đang chạy tất cả các lệnh) có quyền cấp [tức là VỚI GRANT OPTION]. Nếu bạn là người gốc thì nó oky

b) Kiểm tra người dùng tồn tại mà bạn đang cấp quyền thực thi e. g

select user from mysql.user where user like 'test%'; 

nếu không thêm người dùng mới ví dụ

CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx'; 
#depending on you needs 
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost'; 

hy vọng điều này có thể giúp :)

+0

Im đăng nhập dưới dạng gốc và người dùng tồn tại khi chạy mã: chọn người dùng từ mysql.user nơi người dùng thích 'test%'; nhưng tôi vẫn xuất hiện để nhận được các lỗi tương tự. – Olly

+0

thử thêm người dùng mới như tôi đã đề xuất và cấp quyền thực thi cho người dùng đó – sakhunzai

+2

một lần nữa với mật khẩu: 'GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser' @ 'localhost' được xác định bằng 'password'; ' – sakhunzai

1

Để trả lời một phần khác của câu hỏi của bạn liên quan đến MySQL Workbench, tôi đã có cùng một vấn đề. Nhưng sau khi thử nghiệm, tôi phát hiện ra rằng nếu bạn tạo một vai trò và mở tab đặc quyền ở phía dưới, bạn có thể kéo thường trình từ Tổng quan về Mô hình vào hộp đối tượng. Từ đó, chỉ cần nhấp vào đối tượng mới được thêm và thêm quyền bạn muốn cho vai trò đó.

Hy vọng rằng sẽ giúp :)

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