2009-07-29 13 views
1

は、以前の仕事で少し混乱していました。誰かがワットを知っているかどうかを知るために、あなたがそれを実行していると思っていました。

php mysql接続の混乱

私たちのクライアントのための社内管理システムと、その儀式を開始しようとしていました。それはサーバ[db_1とdb_2]上の2つのMySQLデータベースとPHPフロントエンドで構成されています。 [両方のデータベースには複数のテーブルが含まれています]。

90種類のPHPファイルがありますが、その中にはデータベースへの接続が必要なものもあります。これらの接続はすべて、上記の最初のデータベース[db_1]に明示的に接続し、ログインとパスワードそして、これはうまく動作します。

しかし、2番目のデータベースdb_2では、コンテンツにアクセスするための独自のログインとパスワードは必要ないようです。
db_1に接続するとすぐに、私たちのテーブル[例:db_2.usersTable] - >( "SELECT * FROM db_2.usersTable WHEREのフルネームを使用している限り、db_2への完全なアクセス権があるようです。 .. ")。

これは多くの混乱を引き起こしていました。

私の質問は次のとおりです。サーバー上のデータベースに接続すると、そのサーバー上の他のデータベースにアクセスできますか、何か見落としていますか?

すべてのフィードバック大歓迎若い衆...

答えて

4

あなたは通常、特定のデータベースでデータベース・サーバーにアクセスしますが、1つ以上のデータベースへのアクセス権を持つユーザーによってません。例えば

mysql_connect("localhost", "user", "password") or die(mysql_error()); 

はサーバではなく、特定のデータベースに接続します。

データベースサーバーに接続すると、そのユーザーのアクセス権を持つすべてのデータベースにアクセスできます。デフォルトではない複数のデータベースがある場合は、照会でデータベース名を指定するだけです。

mysql_select_db("myTable") or die(mysql_error()); 

は、デフォルトでMyTableを設定しますが、ユーザが許可している他のテーブルには引き続きアクセスできます。

+1

接続は、特定のデータベースではなく、mysqlサーバへの接続です。おかげで多くの若者、私は今それを得ると思う! 10/10 –

1

私は間違っているかもしれませんが、PHPはMySQL サーバと接続して認証するだけではありませんか?したがって、そのユーザの権限に基づいて、PHPはユーザがアクセスできる任意のデータベースを選択できます。私はあなたが サーバ上のデータベースに接続すると、あなたが

1

...と接続しているユーザーの権限を確認し、そのサーバー

上の他の データベースへのアクセスを持っていない場合でしょうあなたは他のデータベースへのアクセス権を持っています。接続すると、サーバーに接続し、のデフォルトのデータベースを指定したものに設定しています。したがって、db_2を明示的に指定する必要があるのですが、db_1を指定する必要はありません。