5.5. Vores database oprettes i MySQL

5.5.1. Opret databasen og tildel en bruger rettigheder

Det første vi skal gøre, er at oprette vores database i MySQL, hvorefter vi skal have tildelt en bruger rettighed til, at indsætte, opdatere, slette og udtrække data fra databasen. For at gøre dette skal du logge dig ind på databaserveren og udføre følgende kommandoer:

[tyge@hven ~]$mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 254 to server version: 3.22.32

Type 'help' for help.


mysql>create database friheden;
Query OK, 1 row affected (0.00 sec)

mysql>use friheden;
Database changed
mysql>grant insert, delete, update, select on friheden.*
    -> to webuser@localhost identified by "WebVer1.00";
Query OK, 0 rows affected (0.12 sec)

mysql>

5.5.2. Opret tabellerne

Når vi nu har fået oprettet vores database, og har givet en bruger adgang hertil, mangler vi kun at få oprettet vores tabeller. Dette gøres med følgende kommandoer:

mysql>create table Users (
    -> Brugernavn varchar(50) primary key,
    -> Password varchar(50) not null,
    -> Navn varchar(50),
    -> Email varchar(30) unique not null,
    -> Status varchar(15) not null,
    -> Oprettet datetime);
Query OK, 0 rows affected (0.02 sec)

mysql>create table Session (
    -> SessionID char(32) primary key,
    -> Brugernavn varchar(50) not null,
    -> SessionDato datetime);
Query OK, 0 rows affected (0.01 sec)

mysql>

5.5.3. Indsæt de første brugere i databasen

Vi har nu oprettet databasen, og herefter mangler vi kun at indsætte en administrator og en almindelig bruger, som vi skal bruge som test. Kommandoerne kommer her:

mysql>insert into Users (Brugernavn, Password,
    -> Navn, Email, Status, Oprettet)
    -> values
    -> ("admin", "admin", "Michael Rasmussen",
    -> "admin@friheden.dk", "Administrator",
    -> "2001-02-06");
Query OK, 1 row affected (0.02 sec)

mysql>insert into Users (Brugernavn, Password,
    -> Navn, Email, Status, Oprettet)
    -> values
    -> ("sten", "sten", "Sten Larsen",
    -> "sten@larsen.dk", "Medlem",
    -> "2001-02-06");
Query OK, 1 row affected (0.01 sec)

mysql>

5.5.4. Kryptering

Vi har nu fået oprettet vores database, og fået lagt de første brugere ind i databasen. Der er dog en ting, du skal være opmærksom på her. I mine eksempler benytter jeg mig af funktionen MD5, som er en krypteringsfunktion, der er indbygget i PHP.

Nu vil du sikkert stille det spørgsmål: "Hvorfor det?". Forklaringen er ligetil: Uden kryptering er det "alt for let" for udenforstående at kompromitere dine sikkerhedsrutiner, og derfor har jeg medtaget faciliteten i mit eksempel. Send blot et indlæg til newslisten news.sslug.dk/sikkerhed, og du skal (måske) få svar på alle dine spørgsmål.

Det har den konsekvens, at hvis du har brugt mine programmer, vil alle de passwords, du har indtastet manuel, være "forkerte". Hvis du vil undgå denne fejl, skal du enten skrive alle PHP-programmer selv, eller fuldt ud benytte dig af mine - valget er dit.

En gennengang af hvordan du installerer mine programmer på din webserver, findes i afsnittet om Installation af eksemplerne.