2012-11-11 13 views
8

Gdzie umieszczasz ustawienia połączenia dla połączenia z bazą danych (takie jak host, nazwa db, użytkownik, hasło)? Czy jest umieszczony w klasie lub pliku bazy danych, czy poza nim w pliku konfiguracyjnym, czy gdzieś indziej?Gdzie umieścić ustawienia połączenia z bazą danych?

+0

To zależy od twojej implementacji ... Możesz umieścić plik ustawień, aby móc go dostosować w dowolnym momencie. lub jeśli kochasz OOP, możesz również użyć klasy .. , ale prawdopodobnie użyłeś pliku ustawień. – Pratik

+2

Zwykle umieszczam go w pliku poza katalogiem głównym, a następnie dołączam go do dowolnej aplikacji, w której go potrzebuję. Dzięki temu jest on bardziej bezpieczny od przypadkowego kontaktu z internetem i pozwala aplikacjom wielokrotnym używać tych samych ustawień, w których zmiana tego jednego pliku spowoduje, że wszystkie ustawienia aplikacji db staną się aktualne. –

Odpowiedz

3

Można to zrobić na wiele sposobów, ale powszechne jest umieszczenie go w pliku ustawień i pozostawienie tego pliku poza serwisem internetowym, aby informacje o haśle bazy danych nie mogły przypadkowo przedostać się do sieci.

5

Idealnie należy umieścić go w pliku konfiguracyjnym, który może być czymś tak prostym jak tablica PHP.

Na przykład: db_config.php

$db_config = array(
    'host' => 'localhost', 
    'user' => 'username', 
    'password' => 'qwerty' 
); 

Następnie należy umieścić ten plik spoza głównego dokumentu dla maksymalnego bezpieczeństwa. W ten sposób, jeśli Twój webhost zawiedzie i rozpocznie serwowanie plików PHP w postaci plików tekstowych (dzieje się), nikt nie może uzyskać twoich referencji DB.

+0

Cześć dziękuję za odpowiedź. Czy byłoby to realizowane globalnie, czy też byłoby coś innego. –

+0

@DaryllSantos Należy dołączyć plik, gdy jest to potrzebne. – xbonez

1

Istnieje wiele sposobów, robią to, ale robię to w ten sposób przez Definiowanie stałych:

Create a config/db.php 

<?php 
define('DB_INFO','mysql:host=localhost;dbname=test'); 
define('DB_USER','root'); 
define('DB_PASS',''); 
1

dla PostgreSQL, bardzo lubię używać pg_service.conf. To pozwala mi umieścić wszystkie ustawienia dotyczące połączenia (nazwa hosta, nazwa bazy danych, nazwa użytkownika, hasło, itp.) W ~/.pg_service.conf lub /etc/postgresql-common/pg_service.conf i nadać im wspólną nazwę (nazwę usługi).

Teraz każdy program (Perl, PHP itp.), Który chce się połączyć z bazą danych, może po prostu określić "service=name" jako ciąg połączenia - ładny, czysty, bezpieczny i łatwy w utrzymaniu.

O ile mi wiadomo, MySQL ma podobny mechanizm dla plików ~/my.cnf lub /etc/my.cnf - możesz zajrzeć do tego.

Powiązane problemy