0

OK、MySQL データベースにユーザーを追加しようとしています。このユーザーは、権限を持つデータベースに他のユーザーを追加できる必要があります。だから私はこれをしました:

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

ただし、このユーザーはユーザーを追加できません。それは、単一のデータベースに対して「すべて」しか与えなかったからですか? アクセス許可は、表示すると「N」と表示されますが、データベース名を削除すると「Y」と表示されます。

「topuser」がこれを実行できるようにしたい:

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

ユーザーを他のデータベースに追加する必要はないため、ここで試してみます。

これは、パスワードがコードに保存されないように、ユーザーがデータベースにアクセスするためにユーザー名とパスワードを提供する Web アプリ用です。ただし、他のソリューションは大歓迎です。

4

2 に答える 2

1

「他の特権への付与」を付与する必要があります。GRANTのマニュアルはこちらから入手できます。

MySQLはALLに基本的な特権のみを含めます。ドキュメントをよく見ると、すべてが次のようになっています。

Grant all privileges at specified access level except GRANT OPTION

したがって、トップユーザーに「付与オプション」を付与する必要があります。

GRANT GRANT OPTION ON thedbname.* TO 'topuser'@'%' IDENTIFIED BY 'pass';
于 2009-11-12T01:51:12.647 に答える
0
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;
于 2013-04-02T15:32:19.833 に答える