Utworzenie bazy danych, użytkownika i nadanie dostępu w PostgreSQL oraz logowanie

Jeżeli chcemy rozpocząć pracę z bazami danych, musimy początkowo wykonać kilka kroków by móc z niej korzystać.

Nejpierw logujemy się jako postgres:

sudo -i -u postgres

gdzie i- to logowanie, a u znaczy nazwę użytkownika.
Następnie logujemy się do bazy PostgreSQL:
psql

Teraz tworzymy bazę danych:
CREATE DATABASE <nazwa_bazy_danych>;

Potem tworzymy użytkownika z hasłem:
CREATE USER <nazwa_uzytkownika> WITH ENCRYPTED PASSWORD ‘<moje_haslo>’;

I przydzielamy uprawnienia:
GRANT ALL PRIVILEGES ON DATABASE <nazwa_bazy_danych> to <nazwa_uzytkownika>;

 

Logujemy się następująco:

psql -U <nazwa_uzytkownika> -d <nazwa_bazy_danych>

Może nam wówczas wyskoczyć taki błąd:
psql: error: connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed: FATAL: Peer authentication failed for user “<nazwa_uzytkownika>”

Musimy wtedy zlokalizować plik konfiguracyjny pg_hba.conf:
locate pg_hba.conf

Edytujemy dowolnym edytorem:
sudo gedit <znaleziona_lokalizacja>

Następującą linię:
local   <nazwa_bazy_danych>   <nazwa_uzytkownika>   peer

Zamieniamy na:
local   <nazwa_bazy_danych>   <nazwa_uzytkownika>   md5

Jeżeli nie ma, to dopisujemy. Pamiętamy o stosowaniu tabulacji, zamiast spacji pomiędzy wyrazami.
Po zapisaniu zmian, trzeba jeszcze zrestartować system:
sudo service postgresql restart

I teraz powinna się pojawić możliwość zalogowania:
psql -U <nazwa_uzytkownika> -d <nazwa_bazy_danych>

Java EE i MS SQL Server w Eclipse

Czyli jak połączyć się w języku programowania Java z serwerem bazodanowym SQL Server.

Konfiguracja SQL Server:

1. W Configuration Manager włączyć protokół TCP/IP dla serwera.

2. Stworzyć użytkownika z możliwością logowania do bazy:

CREATE LOGIN user_name WITH PASSWORD='***';
CREATE USER user_name FOR LOGIN user_name;

3. Stworzyć bazę danych, której właścicielem jest powyższy użytkownik (Database Properties/Files/Owner).

4. Sprawdzić poprawność logowania.

Eclipse Java IDE for Web Developers:

1. Otworzyć narzędzie Data Source Explorer (Window/Show View/Other/Data Source Explorer)

2. Utworzyć połączenie (Database Connections/New/SQL Server/Microsoft SQL Server 2008 JDBC Driver/Jar List/Clear All). Dodać ściągnięty najnowszy sterownik sterownik JAR. Ustawić nazwę użytkownika i hasło. Zmienić nazwę sterownika na inną. Przetestować połączenie.

Projekt aplikacji:

1. Stworzyć nowy dynamiczny webowy projekt. Określić środowisko wykonawcze, np. Apache Tomcat. Zaznaczyć generuj web.xml. Po utworzeniu projektu wrzucić sterownik, przykładowo o nazwie sqljdbc.jar do /WEB-INF/lib. Utworzyć dwie klasy: Polaczenie.java:

package pl.polaczenie;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Polaczenie {
	
	private Connection connection;
	private String userName = "user_name";
	private String password = "password";
	private String url = "jdbc:sqlserver://localhost:1433;databaseName=base_name";
	
	public Polaczenie() {
		try {
			connection = DriverManager.getConnection(url, userName, password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public Connection getConnection() {
		return connection;
	}

}

i PolaczenieTest.java:

package pl.test;

import static org.junit.Assert.assertNotNull;

import org.junit.jupiter.api.Test;

import pl.polaczenie.Polaczenie;

public class PolaczenieTest {
	
	Polaczenie polaczenie = new Polaczenie();
	
	@Test
	public void checkConnection() {
		assertNotNull(polaczenie.getConnection());
	}
}

Odpowiednio należy wstawić nazwę użytkownika, hasło i nazwę bazy danych. Uruchomić jako testy jednostkowe. Jeżeli nie ma błędów mamy poprawne połączenie aplikacji z bazą. I można zacząć tworzyć aplikację webową.