Avatar billede sjh Nybegynder
27. september 2005 - 20:55 Der er 18 kommentarer og
1 løsning

bruger adgangs typer

Jeg skal ha lavet nogle stardard bruger.. men er ikke sikker på hvem som skal ha adgang til hvad..

Her har jeg lavet "admin" og "default" men default passer sikkert ikke som den skal så det vil jeg godt have nogle forslag til..

  function create_sql_user($strUsername, $strPassword, $strDatabase, $strGrant = "default", $strHost = "localhost") {
    if ($strGrant == "default" || $strGrant == "") {
      $strGrant = "SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES";
    }
    if ($strGrant == "admin") {
      $strGrant = "ALL PRIVILEGES";
    }
    $strSQL = "GRANT $strGrant ON *.* TO '$strUsername'@'$strHost' IDENTIFIED BY '$strPassword';";
    if (mysql_query($strSQL)) {
      if (mysql_query("FLUSH PRIVILEGES;")) {
        return true;
      }
    }
  }


og så kan jeg ikke finde ud af hvordan man opdater grant i mysql..

  function update_sql_grant($strGrant) {

  }
Avatar billede arne_v Ekspert
27. september 2005 - 21:02 #1
du tilføjer med GRANT og fjerner med REVOKE
Avatar billede arne_v Ekspert
27. september 2005 - 21:03 #2
jeg er ikke sikker på at du skal tildele ikke-admin CREATE og DROP på *.*
Avatar billede sjh Nybegynder
27. september 2005 - 21:07 #3
altså..

$strGrant = "REVOKE SELECT, INSERT, UPDATE";

hvad så med user.. kan du  ikke komme med et eksempel..
Avatar billede arne_v Ekspert
27. september 2005 - 21:09 #4
du skal igen angive for hvad og hvem

eksempel på hvad ?
Avatar billede sjh Nybegynder
27. september 2005 - 21:10 #5
ha ha den skulle også ha set sådan ud..

$strSQL = "GRANT $strGrant ON $strDatabase.* TO '$strUsername'@'$strHost' IDENTIFIED BY '$strPassword';";
Avatar billede sjh Nybegynder
27. september 2005 - 21:10 #6
eksempel på REVOKE
Avatar billede sjh Nybegynder
27. september 2005 - 21:13 #7
eksempel på hvordan jeg bruger "REVOKE" og bestemmer den bruger som "REVOKE" skal settes på..
Avatar billede arne_v Ekspert
27. september 2005 - 21:13 #8
$strSQL = "REVOKE $strGrant ON $strDatabase.* FROM '$strUsername'@'$strHost'";
Avatar billede sjh Nybegynder
27. september 2005 - 21:21 #9
du har vel ikke flere forslag til bruger typer.. lige nu har jeg:

(admin) $strGrant = "ALL PRIVILEGES";
(default) $strGrant = "SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES";
Avatar billede arne_v Ekspert
27. september 2005 - 21:24 #10
Jeg tvivler på at en user skal have INDEX og ALTER

Men ellers ser det vel ikke helt forkert ud, men jeg vil anbefale
at restricte en bruger til en database
Avatar billede sjh Nybegynder
27. september 2005 - 21:27 #11
restricte en bruger til en database?? hvordan det??
Avatar billede arne_v Ekspert
27. september 2005 - 21:30 #12
*.* = alle databaser alle tabeller

xxxx.* = kun database xxxx alle tabeller
Avatar billede sjh Nybegynder
27. september 2005 - 21:32 #13
når ja.. jeg lavede det også om her:

Kommentar: sjh
27/09-2005 21:10:21
Avatar billede sjh Nybegynder
27. september 2005 - 21:34 #14
du må godt smide et svar.. :D
Avatar billede arne_v Ekspert
27. september 2005 - 21:35 #15
kommer her
Avatar billede arne_v Ekspert
27. september 2005 - 21:36 #16
hvis du skal arbejde meget med MySQL så køb en af de mange bøger om MySQL - der er
skrevet mange
Avatar billede sjh Nybegynder
27. september 2005 - 21:55 #17
Ja det kunne da godt være man skulle tage en tur på biblioteket.. er der nogle bøgr du kan anbefale.. (de må godt være på dansk) :D

Tak for hjælpen..
Avatar billede arne_v Ekspert
27. september 2005 - 21:58 #18
jeg har selv

MySQL Bible / Steve Suehring

men den vil jeg kalde middel

MySQL / Paul DuBois

har et meget godt ry

jeg aner ikke hvad man kan få på dansk
Avatar billede sjh Nybegynder
27. september 2005 - 22:05 #19
okææ..

Jeg syntes ikke jeg kan få det her til at virke.. hvis jeg nu gerne vil ændre "%" til "localhost" hvordan gør jeg så det??


  function update_sql_grant($strUsername, $strDatabase, $strGrant, $strHost = "localhost") {
    $strSQL = "REVOKE $strGrant ON $strDatabase.* FROM '$strUsername'@'$strHost'";
    if (mysql_query($strSQL)) {
      if (mysql_query("FLUSH PRIVILEGES;")) {
        return true;
      }
    }
  }
 
  echo update_sql_grant("sjh", "test", "SELECT, INSERT", "%");
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester