2012-04-17 8 views
41

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

答えて

39

おそらく、mysqlコマンドラインクライアントを使用してデータベースに接続し、SQLコマンドを呼び出して新しいユーザーを作成し、そのユーザーに権限を割り当ててください。

たとえば、あなたがこのような何かを実行するかもしれません:Windows上で

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'@'%'; 

あなたはmysql.exeクライアントを使用することができ、つまりどこ。

便利なドキュメント

AWS RDSセキュリティグループのドキュメント(混乱の共通領域):私が持っていたhttp://dev.mysql.com/doc/refman/5.5/en/grant.html

+0

問題だけ。ホストはYOURRDSENDPOINT.rds.amazonaws.comなので、localhostに権限を与えることはできますか?私は、ワイルドカードのホスト名を使用して答えを更新します、これは単なる例として提供された成功 – nightgaunt

+0

ずにかなり長い間行って取得しようとしてきました。 – andebauchery

7

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithSecurityGroups.html

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

特権最も成功したのは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'; 
+3

あなたがあなたのデータベース*を 'foo' @ 'localhost'に許可すると、もっと成功するかもしれません。 *はシステムデータベース(スキーマ)を含みます。 ON – Mike

+0

'GRANTの使用量は*。* 'FOO' @ 'のRDS mariadbでテストlocalhost''するために、私は、MySQLが同じであるべきだと思います。 [アマゾンRDS上のMySQL](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) – Leonmax

5

私はmySQLワークベンチを使用しており、正常に動作しています。単に管理者/ユーザーと権限に行き、 "アカウントの追加"ボタンを左下に押して設定してください。あなたはSUPER特権を与えることはできませんが、残りのほとんどは

14

私はこのスレッドが何年か分かっていることを知っています。私はAWS RDSとユーザー権限についての更新情報を得たいと思っています。

RDSを持つすべてのユーザーにGRANT ALLを使用することはできません。 GRANT ALLステートメントを使用する場合は、Global(AWSはSuper Permissionsと呼んでいます)とAWS RDSシステムの設定方法を使用して、グローバルオプションをユーザーに割り当てることもできません。あなたは、次の権限を抜け出すために持っている

:セキュリティ設定は、あなたのEC2インスタンスからのアクセスを許可するように設定されたら

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

これは、ユーザーがRDSに接続することができるようになりますまたはインターネットから。

希望この情報は私がAWS RDSシステムで見たのと同じ問題に実行されている他の誰に役立ちます。

ワルド

+0

良い説明、歓声を参照してください。 – dkanejs

+0

それも私を保存します。 'GRANT ALL'の後もまだ接続できないのはなぜ?今は明らかです。 –

+0

良い点!あなたが取得エラー 'ALL'です:' ERROR 1045(28000):アクセスは(パスワードを使用して:YES)、ユーザのルート '@「%」のために拒否された ' – crollywood

5

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

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

しかし、その後、AWSは、そのユーザにログインする拒否。そして、私は管理者権限を変更しようとしましたが、成功しませんでした。そして私はmysqlのworkbenchを介して 'localhost'を '%'に変更します。以下のような(またはユーザーを削除し、再作成することができます):

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

その後、私だけがこの新しいユーザーによってlogginすることができました。

関連する問題