Permisos en Mysql

Category: Seguridad 10 years ago
Hola!
Alguien me podría decir cómo puedo obtener un script para extraer todos los permisos de una BD. Lo que pasa es que tengo que mover todas las bases de datos de un server a otro, pero la última vez que lo hice, según los desarrolladores, faltaban permisos una vez restauré las BBDD en el destino.

La forma en que lo hice fue:

En origen y para cada base de datos:
/usr/bin/mysqldump --all --add-drop-table -u root --password=xxx > /tmp/archivo.sql

Y en el destino:
mysql -u root -p BD_name < archivo.sql

Esto me importa las tablas, pero como comenté, dicen que no tiene todos los permisos...

Hay alguna forma de sacar los permisos...como en el artículo que tienen de Oracle (http://dbasupport.com.mx/index.php?option=com_content&view=article&id=154&catid=1:administracion&Itemid=3)

un saludo y gracias!
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Permisos en Mysql

    by » 10 years ago


    y por cierto, también restauré la base de datos de "Mysql"

  • Re: Permisos en Mysql

    by » 10 years ago


    Si, podrías ejecutar estos queries.

    mysql> SELECT u.* INTO OUTFILE '/tmp/user.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    FROM
    mysql.user u
    WHERE
    u.Select_priv='Y'
    UNION
    SELECT u.*
    FROM
    mysql.user u,
    mysql.db d
    WHERE
    d.Db IN('db1', 'db2', ...) AND
    d.User = u.user
    UNION
    SELECT u.*
    FROM
    mysql.user u,
    mysql.tables_priv t
    WHERE
    t.Db IN('db1', 'db2', ...) AND
    t.User = u.User
    UNION
    SELECT u.*
    FROM
    mysql.user u,
    mysql.procs_priv p
    WHERE
    p.Db IN('db1', 'db2', ...) AND
    p.User = u.User;

    mysql> SELECT * INTO OUTFILE '/tmp/db.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    FROM
    mysql.db
    WHERE
    Db IN('db1', 'db2', ...);
    mysql> SELECT * INTO OUTFILE '/tmp/tables_priv.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    FROM
    mysql.tables_priv
    WHERE
    Db IN('db1', 'db2', ...);
    mysql> SELECT * INTO OUTFILE '/tmp/procs_priv.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    FROM
    mysql.procs_priv
    WHERE
    Db IN('db1', 'db2', ...);

    Después cargas los archivos.

    mysql> LOAD DATA INFILE '/tmp/user.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    INTO TABLE mysql.user;
    mysql> LOAD DATA INFILE '/tmp/db.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    INTO TABLE mysql.db;
    mysql> LOAD DATA INFILE '/tmp/tables_priv.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    INTO TABLE mysql.tables_priv;
    mysql> LOAD DATA INFILE '/tmp/procs_priv.txt'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY '\n'
    INTO TABLE mysql.procs_priv;

    Saludos

  • Re: Permisos en Mysql

    by » 10 years ago


    Wow!!! Muchas gracias!!

You do not have permissions to reply to this topic.
Powered by CjForum