web-dev-qa-db-ja.com

Amazon RDS環境での新しいMySQLユーザーの作成

既存のAmazon RDSインスタンスに対する制限付きアクセス許可を持つ新しいMySQLユーザーを作成する必要があります。いくつかのエラーメッセージが表示された後、公式のMySQL Administratorツールを使用してこれを行うことができ、ユーザーがリストに表示されます。ただし、すべてのユーザーがグレー表示されているため、スキーマ特権を割り当てることができません。インスタンスの起動時に作成された「マスターユーザー」としてログインしています。ここからどこへ行くかわからない。 RDSコマンドラインツールをインストールしましたが、そこにも何も追跡できませんでした。アイデア

56
Dan

最善の策は、おそらくmysqlコマンドラインクライアントを使用してデータベースに接続し、SQLコマンドを呼び出して新しいユーザーを作成し、特権を割り当てることです。

たとえば、次のようなものを実行できます。

mysql -u [your_master_username] -p -h YOURRDSENDPOINT.rds.amazonaws.com

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON [your_database].[some_table] TO 'jeffrey'@'%';

Windowsでは、mysql.exeクライアントをどこにでも使用できます。

便利なドキュメント

AWS RDSセキュリティグループのドキュメント(混乱の一般的な領域): http://docs.aws.Amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithSecurityGroups.html

ユーザー作成ドキュメント: http://dev.mysql.com/doc/refman/5.5/en/create-user.html

権限付与ドキュメント: http://dev.mysql.com/doc/refman/5.5/en/grant.html

55
andebauchery

このスレッドは数年前のものであり、私はそれを見つけ続けているので、AWS RDSとユーザーのアクセス許可に関する最新情報を入手したいと思っています。

RDSを持つユーザーにはGRANT ALLを使用できません。 GRANT ALLステートメントを使用するときは、Global(AWSではSuper Permissionsと呼ばれる)を提供しようとしていますが、AWS RDSシステムがセットアップされる方法では、ユーザーへのグローバルオプション。

次の権限を分割する必要があります。

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

これにより、EC2インスタンスまたはインターネットからのアクセスを許可するようにセキュリティ設定がセットアップされると、ユーザーはRDSに接続できるようになります。

この情報が、AWS RDSシステムで見たのと同じ問題に直面している他の誰にも役立つことを願っています。

ワルド

33
Waldo

私はこのように作成しました:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'localhost';

しかし、その後、AWSはそのユーザーへのログインを拒否しました。そして、管理者権限を変更しようとしましたが、成功しませんでした。そして、mysqlワークベンチを介して「localhost」を「%」に変更します。 (または、ユーザーを削除して再作成できます)

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'%';

その後、私だけがこの新しいユーザーを介してログインできました。

さらに:この変更を行うと、データベースは任意のIPからの接続を許可されます。セキュリティを改善し、アクセスIPを制限する必要がある場合(例:ステージングデータベースの場合)、サーバーのmy.cnfファイルにバインドアドレスを設定できます。

バインドアドレス= your.ip.add.ress

ここにリンクの説明を入力

11
Sadee

MySQL Workbenchを使用して、RDSに対して生のSQLを実行すると、最も成功しました。

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';

最大の問題は権限でした。最初に試しました:

Grant ALL on *.* to 'foo'@'localhost'

...これにより、アクセス拒否エラーが発生します。

Error Code: 1045. Access denied for user 'foo'@'%' (using password: YES)

面倒な許可は「スーパー」であり、RDSからは許可されません。そのため、許可することはできません。その結果、私は手動で許可を行うことにこだわっています。

Grant SELECT on *.* to 'foo'@'localhost';
Grant INSERT on *.* to 'foo'@'localhost';
Grant CREATE on *.* to 'foo'@'localhost';
8
Chris M.

MySQLワークベンチを使用しましたが、正常に動作します。管理/ユーザーと権限に移動し、左下の[アカウントの追加]ボタンを押して設定します。 SUPER権限を付与することはできませんが、残りのほとんどは

5
user2349783