English 中文(简体)
MySQL Users and All Privileges
原标题:

Ok, I m trying to add a user to a MySQL database. This user should be able to add other users to the database it has privileges for. So I did this:

GRANT ALL privileges ON thedbname.* TO  topuser @ %  IDENTIFIED BY  pass ;

However, I this user cannot add users. Is that because I only gave them all for a single database? The permissions show up as N when I view them whereas if I remove the database name they show as Y .

I want topuser to be able to run this:

GRANT SELECT ON thedbname.* TO  seconduser @ %  IDENTIFIED BY  pass ;

They do not need to add users to other databases, hence my attempts here.

This is for a web app where users provide a username and password to access a database so that a password is not stored in the code. Other solutions welcomed though!

问题回答

You have to GRANT the "grant to other privilege". The manual of the GRANT is available here.

MySQL to include only basic privileges in the ALL, if you take a close look at the documentation it says all is :

Grant all privileges at specified access level except GRANT OPTION

so you should grant the "grant option" to your top user :

GRANT GRANT OPTION ON thedbname.* TO  topuser @ %  IDENTIFIED BY  pass ;
DELETE FROM mysql.user WHERE user LIKE  admin ;
INSERT INTO mysql.user (host, user, password) VALUES ( localhost ,  admin ,  portal01 );
INSERT INTO mysql.user (host, user, password) VALUES ( % ,  admin ,  portal01 );
GRANT ALL PRIVILEGES ON *.* TO  admin @ localhost  IDENTIFIED BY  portal01  WITH GRANT OPTION;sudo 
GRANT ALL PRIVILEGES ON *.* TO  admin @ %  IDENTIFIED BY  portal01  WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT * FROM mysql.user ORDER BY user;




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签