In MySQL, how do you allow another user to create other users? In turn, those users should only be able to view some tables.


From MySQL's privileges documentation, the CREATE USER privilege is the one you want:

GRANT CREATE USER ON *.* TO 'username'@'host'

For other privileges, read MySQL's GRANT documentation.

Note, I've linked to MySQL 5.0 documentation. GRANT hasn't changed much over the years, so any newer versions should also use the same syntax.

|improve this answer|||||
  • Thanks. To make it work, I had to specify GRANT CREATE USER ON . TO 'username'@'host'... – Steve Bennett Feb 8 '13 at 5:15
  • I'll edit the answer. – hrunting Feb 8 '13 at 5:41
  • 1
    Sorry, that should be *.* (star dot star). Stackoverflow ate my asterisks. – Steve Bennett Feb 11 '13 at 0:33

I think the answer is this:

GRANT INSERT on mysql.* to 'username';
GRANT RELOAD on *.* TO 'username'@'%';

Plus setting grant access on the relevant tables.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.