путаница подключения php mysql - PullRequest
1 голос
/ 30 июля 2009

раньше немного путался в работе. Идентификатор мысли запускает его вами, чтобы узнать, знает ли кто-нибудь, что происходит.

Мы работали над внутренней системой администрирования для нашего клиента, и ее обряд готовился к запуску. Он состоит из ДВУХ баз данных MySQL на сервере [db_1 и db_2] и внешнего интерфейса PHP. [Обе базы данных содержат несколько таблиц].

Возможно, существует 90 различных файлов PHP, некоторые из которых требуют подключения к нашим базам данных, и ВСЕ эти подключения выполняются через одну функцию PHP, которая явно подключается к первой базе данных, упомянутой выше [db_1], и предоставляет логин и пароль. , И это прекрасно работает.

Однако наша вторая база данных, db_2, похоже, не требует собственного логина и пароля для доступа к ее содержимому.
Как только мы подключаемся к db_1, у нас появляется полный доступ к db_2, если мы используем полное имя для наших таблиц [т.е.: db_2.usersTable] -> ("SELECT * FROM db_2.usersTable WHERE ... «).

И это то, что вызывало большую путаницу.

У меня такой вопрос: как только вы подключаетесь к базе данных на сервере, у вас есть доступ к другим базам данных на этом сервере или мы что-то пропускаем ???

Любая обратная связь с благодарностью ребята ...

Ответы [ 3 ]

4 голосов
/ 30 июля 2009

Обычно вы обращаетесь не к серверу базы данных по определенной базе данных, а по пользователю, у которого есть доступ к одной или нескольким базам данных.

например:

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

подключается к серверу, а не к конкретной базе данных.

После подключения к серверу баз данных вы получаете доступ ко всем базам данных, для которых у этого пользователя есть разрешение. Вам просто нужно указать имя базы данных в ваших запросах, если есть несколько баз данных, которые не являются значениями по умолчанию.

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

устанавливает myTable по умолчанию, но вы все равно можете получить доступ к другим таблицам, на которые у пользователя есть разрешение.

1 голос
/ 30 июля 2009

После подключения к базе данных на сервер, есть ли у вас доступ к другим базы данных на этом сервере

Если у вас есть права доступа к другим базам данных, тогда да. При подключении вы подключаетесь к серверу и настраиваете базу данных default на указанную. Вот почему вам нужно явно указать db_2, когда вы хотите получить к нему доступ, но вам не нужно указывать db_1.

1 голос
/ 30 июля 2009

Я могу ошибаться, но разве PHP не подключается и не аутентифицируется только на сервере MySQL с пользователем? И, таким образом, на основе разрешений этого пользователя PHP может выбрать любую базу данных, к которой у пользователя есть доступ. Я бы проверил разрешения для пользователя, с которым вы соединяетесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...