2011-10-06 41 views
10

Tôi có cơ sở dữ liệu nơi tôi muốn người dùng có thể tạo người dùng mới. Điều đó có thể đạt được thông qua GRANT CREATE USER như sau:Làm cách nào để "cấp cho người dùng tạo" dưới dạng người dùng không phải là người dùng root?

grant create user on *.* to foo; 

Công cụ tuyệt vời này có thể tạo người dùng. Vấn đề của tôi là dòng trên hoạt động nếu chạy dưới dạng root, nhưng không hoạt động nếu chạy như một người dùng bình thường, ngay cả khi người dùng đó đã có đặc quyền CREATE USER.

Trong ngắn hạn, người dùng bình thường không thể ủy quyền khả năng tạo người dùng. Tôi đã tìm kiếm xa và rộng cho bất kỳ đặc quyền cụ thể nào bạn cần để có thể làm điều này, và tôi bắt đầu nghĩ rằng đó là thứ mà chỉ root mới có thể làm được, mặc dù tôi không tìm thấy bằng chứng nào trong tài liệu MySQL.

Câu hỏi: làm cách nào để cho phép người dùng bình thường cho phép người dùng mới tạo người dùng?

Trả lời

7

Cố gắng chạy truy vấn sau khi cấp:

FLUSH PRIVILEGES; 
8

Cả hai câu trả lời là có ích - Tôi sử dụng một sự kết hợp của cả hai và nó dường như đã từng làm việc.

Dưới root (admin là một người dùng bình thường):

mysql> grant create user on *.* to admin with grant option; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

Như admin (hãy nhớ rằng, anh ấy là một người sử dụng bình thường):

mysql> grant create user on *.* to foo with grant option; 
Query OK, 0 rows affected (0.00 sec) 

Cảm ơn bạn rất nhiều.

4
-- Create username user 

GRANT ALL PRIVILEGES ON `tshirtshop`.* 
     TO 'username'@'localhost' IDENTIFIED BY 'password' 
     WITH GRANT OPTION; 
Các vấn đề liên quan