[MySQL] DB + User aanmaken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Newbie

PHP Newbie

12/03/2007 18:54:00
Quote Anchor link
Dag,

Is het mogelijk om d.m.v. php een database aan te maken (het liefst met een limiet van 5 MB).

En is het dan ook mogelijk om via php een user in de database aan te maken, met zelf gekozen rechten?

Groet
Newb
 
PHP hulp

PHP hulp

20/11/2024 11:43:49
 
PHP Newbie

PHP Newbie

12/03/2007 20:08:00
Quote Anchor link
Na nog een half uur zoeken heb ik het user aanmaak gedeelte gevonden.

Nu wil ik eigenlijk alleen nog weten hoe ik een database met size limit aan kan maken...
 
Danny K

Danny K

12/03/2007 20:23:00
Quote Anchor link
Zoals gewoonlijk helpt google weer: Klik!
 
PHP Newbie

PHP Newbie

13/03/2007 14:28:00
Quote Anchor link
Daar staat hoe je de maximale grote van een database op kunt vragen, maar hoe CREËER je een database, met een size limit.
 
PHP Newbie

PHP Newbie

13/03/2007 17:53:00
Quote Anchor link
Hmm, dat user aanmaken werkt ook niet helemaal lekker.

Ik heb deze code, hij lijkt misschien wat lang, maar dat komt gewoon omdat ik alles even lekker uitgebreid heb neergezet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
    $username
= 'test_username';
    $database = 'test_database';
?>

<h2>Verbinding met database maken</h2>

<?php
    if(mysql_connect('127.0.0.1', 'root', '***'))
    {

        echo 'Succesvol verbinding gemaakt met de host<br />';
    }

    
    if(mysql_select_db('mysql')) //MySQL is de database waarin de users staan
    {
        echo 'Succesvol verbinding gemaakt met de database<br />';
    }

?>


<h2>Gebruiker toevoegen</h2>

<?php
    $sql
= "INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', '".$username."', PASSWORD('mypass'), 'Y', 'Y', 'Y')";
    
    if(mysql_query($sql))
    {

        echo 'De gebruiker is succesvol toegevoegd';
    }

    else
    {
        echo 'De gebruiker is niet toegevoegd: '.mysql_error();        
    }

?>


<h2>Maak de database aan</h2>

<?php
    $sql2
= "CREATE DATABASE ".$database;
    
    if(mysql_query($sql2))
    {

        echo 'De database is succesvol aangemaakt';
    }

    else
    {
        echo 'De database kon niet worden aangemaakt: '.mysql_error();        
    }

?>


<h2>Rechten geven</h2>

<?php
    $sql3
= "INSERT INTO db(host,
                           db,
                           user,
                           select_priv,
                           insert_priv,
                           update_priv,
                           delete_priv,
                           create_priv,
                           drop_priv,
                           index_priv,
                           alter_priv)
           VALUES('localhost',
                     '"
.$database."',
                     '"
.$username."',
                     'Y',
                     'Y',
                     'Y',
                     'Y',
                     'Y',
                     'Y',
                     'Y',
                     'Y')"
;

    if(mysql_query($sql3))
    {

        echo 'De rechten zijn gegeven';
    }

    else
    {
        echo 'De rechten konden niet worden gegeven: '.mysql_error();        
    }

?>


<h2>Nieuwe connectie</h2>

<?php
    if(mysql_connect('127.0.0.1', $username, 'mypass'))
    {

        echo 'Succesvol verbinding gemaakt met de host<br />';
    }

    
    if(mysql_select_db($database)) //MySQL is de database waarin de users staan
    {
        echo 'Succesvol verbinding gemaakt met de database<br />';
    }

?>


En dit resultaat krijg ik terug:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Verbinding met database maken

Succesvol verbinding gemaakt met de host
Succesvol verbinding gemaakt met de database

Gebruiker toevoegen

De gebruiker is succesvol toegevoegd

Maak de database aan

De database is succesvol aangemaakt

Rechten geven
De rechten zijn gegeven

Nieuwe connectie

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'test_username'@'localhost' (using password: YES) in F:\server\www\sql2.php on line 88

Succesvol verbinding gemaakt met de database


Alles gaat dus goed, tot het moment dat er verbinding gemaakt moet worden. Dan kan er opeens geen verbinding gemaakt worden.

Ook via PHPMyAdmin kan ik er niet in...

Iemand een idee wat er verkeerd is?
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
- SanThe -

- SanThe -

13/03/2007 17:59:00
Quote Anchor link
Maak van 127.0.0.1 eens localhost
 
Frank -

Frank -

13/03/2007 18:00:00
Quote Anchor link
Vraagje: Waarom gebruik je geen GRANT om de gebruikers (die je als users aanmeldt in de database) de juiste rechten te geven? Hiermee spijker je de boel volledig dicht! Tevens bestaat er dan geen kans dat door een foutje in jouw script de boel alsnog open staat.
 
PHP Newbie

PHP Newbie

13/03/2007 19:47:00
Quote Anchor link
Frank, Kun je me een voorbeeldje geven?

Edit:


Ik heb nu dit:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    $sql
= "GRANT USAGE ON *.* TO '".$username."'@'localhost' IDENTIFIED BY '****'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0";
    
    if(mysql_query($sql))
    {

        echo 'De gebruiker is succesvol toegevoegd';
    }

    else
    {
        echo 'De gebruiker is niet toegevoegd: '.mysql_error();        
    }

?>


Om een gebruiker toe te voegen. Deze wordt ook keurig in mijn database bij "rechten" weergeven.

Echter als ik verbinding wil maken met de database (of dat nu via php of via PHPMyAdmin is) krijg ik geen toegang...
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
Frank -

Frank -

13/03/2007 20:50:00
Quote Anchor link
"krijg ik geen toegang..." En welke foutmelding krijg je daar op?

Verder is het van belang om voor 110% zeker te weten dat je de juiste user en het juiste wachtwoord gebruikt.
 
PHP Newbie

PHP Newbie

13/03/2007 21:45:00
Quote Anchor link
Frank schreef op 13.03.2007 20:50:
"krijg ik geen toegang..." En welke foutmelding krijg je daar op?

Verder is het van belang om voor 110% zeker te weten dat je de juiste user en het juiste wachtwoord gebruikt.


Gewoon de standaard melding:

Quote:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'test_username'@'localhost' (using password: YES) in F:\server\www\sql2.php on line 88


En ik ben er vrijwel zeker van dat ik de goeie username en password gebruik.
 
Niek s

niek s

13/03/2007 22:03:00
Quote Anchor link
Welke database gebruik je? MySQL. Ok.

Daarbij kan je geen limits instellen. Wel kan je een php/perl scriptje maken die dat voor jou kijkt, en als er een probleem is je CREATE en INSERT rechten weg neemt. Ik heb het ook eens gevraagd. Kijk maar bij mijn topics.
 
PHP Newbie

PHP Newbie

13/03/2007 23:30:00
Quote Anchor link
Zo, het user aanmaak gedeelte werkt.

Ik post hem zo even in de scriptlib.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.