2012-04-01 7 views
3

おそらく、私はそれを考えなくてはならないかもしれませんが、真剣にこれについて考えなければなりません。(初めてシングルユーザのアプリケーションは複数の場所からマルチユーザになります。どのような目的のために、MySQL(またはそれに関する他のデータベース)のパスワードですか?私たちは、このような場合と同様に、接続文字列で参照パスワード:MySQLのパスワードを理解する

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200" 

は、データベースtreeにアクセスするためのユーザーrootのためのコードワードbranchですか?または、rootは特定のマシン上のMySQLデータベースにアクセスしますか?または、データベースtreeにアクセスするすべてのユーザーのパスワードですか?または、そのマシン上の任意のMySQLデータベースにアクセスするユーザーのパスワード?

私の質問は基本的には?

  1. パスワードは、MySQL、データベース、またはユーザーに固有のものですか。または、その特定のMySQLインストール上のその特定のデータベースの特定のユーザですか?またはこれらの組み合わせ? の場合はパスワードがありますか?branchの場合はそうでない場合など、db自体のパスワードはありますか?自分の無知のために申し訳ありません

;)

編集:

"SERVER=localhost;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200" 

:接続文字列で

query = "DROP DATABASE tree"; 

:私は私のデータベースをドロップするようにこのクエリを実行することができますそれは、パスワードがデータベースごとではなく、ユーザーごとであることを意味しないのでしょうか?

答えて

1

1)パスワードは、MySQL、データベース、または ユーザに固有のものですか?または、その特定のデータベースの特定のユーザのために、 特定のMySQLインストールですか?またはこれらの組み合わせ?

最初から始めましょう。初めてMySQLをインストールするときは、ユーザ名(rootと言う)とパスワード(rootと言う)を入力するように求められます。これはサーバー全体に対するものです。 上記のユーザー名とパスワードを使用してサーバーに接続した後、ユーザー 'abc'(パスワード 'xxx')のようなさまざまな理由でユーザーアカウントを作成できます。また、パスワード 'aaa'を持つ別のユーザー 'xyz'は、サーバーに接続してSELECT権限のみですべてのデータベースにアクセスできます。ここで

CREATE USER 'abc'@'%' IDENTIFIED BY 'xxx'; 
FLUSH PRIVILEGES; 
GRANT ALL ON `test`.* TO 'abc'@'%' WITH GRANT OPTION; 

ユーザーパスワード「XXX」と「ABC」は唯一のテストデータベースにアクセスすることにより、サーバーではなく、最小限のprivileges-に接続することができます。

CREATE USER 'xyz'@'%' IDENTIFIED BY 'aaa'; 
FLUSH PRIVILEGES; 
GRANT SELECT ON *.* TO 'xyz'@'%' ; 

パスワード 'aaa'を持つこのユーザー 'xyz'は、SELECT権限のみを持つサーバーに接続します。

パスワードが異なる3人のユーザーが実際にサーバーに接続できるのは、 'root'パスワード「root」のユーザーはすべての特権を持ち、「abc」と「xyz」は最小限の特権を持ちます。

私はより多くのユーザーがデータベースにアクセスする必要がある場合を意味し、私はuのoh..so :-)

+0

素晴らしい仕事、私はそれが意味するようにそれを理解した。しかし、私は今qを得ました。ですから、私が提供した接続文字列に関しては、それはすべてユーザー権利の特権に依存していますか?私の接続文字列のユーザー 'root'は、どのような特権を持っているのかに応じて、データベースや接続文字列で指定されたデータベースにアクセスできますか? – nawfal

+0

正確に。ユーザーがどのように特権を持っているかに応じて、MySQLはそれに接続して表示または動作します。 http://dev.mysql.com/doc/refman/5.5/ja/adding-users.htmlは疑問をすべて解決するかもしれません。 –

+0

ashwinさん、ありがとうございました。私はもう2つの答えを見ることができました。 – nawfal

1

パスワードを使用すると、ユーザーはデータベースに接続できます。

それぞれ1つ。

つまり、特定のユーザーは、その特定のパスワードを使用してデータベースの特定のインスタンスに接続できます。

+0

また、2回目の自分の質問に答えたと思うし、彼らはすべてのユーザーテーブルに追加する必要がありますか?それとも、MySQLのインストールに管理者ユーザーとパスワードを1つだけ持つのが一般的ですか? – nawfal

+0

場合によっては、すべてのアプリケーションアクセスに共通のユーザーを使用することができますが、他の時間には、名前付きユーザーにその操作を実行させることもできます。それは本当にシステムの要件に依存します – Randy

+0

mmランディーありがとう、私はそれを得る – nawfal

関連する問題