DB1_create_databases_prod_and_test_and_users.sql 3.06 KB
-- phpMyAdmin SQL Dump
-- version 4.7.8
-- https://www.phpmyadmin.net/
--
-- Hôte : 127.0.0.1
-- Généré le :  ven. 11 jan. 2019 à 18:07
-- Version du serveur :  5.7.21
-- Version de PHP :  5.6.33

-- SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-- SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;


--
-- Base de données :  `_mydb_`
--

-- (EP) Est-ce vraiment utile de faire une transaction si tot ?
-- SET AUTOCOMMIT = 0;
-- START TRANSACTION;

-- Si la BD existe deja, a priori on veut la re-créer, donc il faut d'abord la supprimer
-- On fait ca car sinon, si elle existe deja, la re-creation des tables cause des problèmes
-- qui sont dus aux index (qui eux ne sont pas supprimés...)
DROP DATABASE IF EXISTS _mydb_;
DROP DATABASE IF EXISTS _mydbtest_;

-- CREATE SCHEMA IF NOT EXISTS _mydb_ DEFAULT CHARACTER SET latin1;
CREATE DATABASE IF NOT EXISTS _mydb_ DEFAULT CHARACTER SET latin1;
-- CREATE SCHEMA IF NOT EXISTS _mydbtest_ DEFAULT CHARACTER SET latin1;
CREATE DATABASE IF NOT EXISTS _mydbtest_ DEFAULT CHARACTER SET latin1;


-- Creation du proprietaire de la BD
-- La ligne suivante serait la meilleure, mais ne suffit pas, impossible de se connecter a la BD avec ceci :
-- grant all on _mydb_.* to 'bddUserName' identified by 'bddUserPass';
-- ni avec ceci :
-- grant all on _mydb_.* to 'bddUserName'@'%' identified by 'bddUserPass';
-- Il faut donc faire ceci (ajouter localhost) et on pourra alors se connecter a la BD !!! :

-- Il faut supprimer l'utilisateur avant de l'ajouter.
-- (EP 2020-01-20) : 
-- Ca ne marche plus avec mysql 5.7 !!!
-- Par contre, ca risque d'etre toujours necessaire pour les anciennes versions !!!
-- TODO: tester ce script avec une ancienne version
-- GRANT USAGE ON *.* TO 'mydb_user';
-- DROP USER 'mydb_user';
-- GRANT USAGE ON *.* TO 'superadmin';
-- DROP USER 'superadmin';

-- grant all on _mydb_.* to '_mydb_'@'localhost' identified by '_mydb_1';
-- grant all on _mydb_.* to 'mydb_user'@'localhost' identified by 'mydb_pass';
-- grant all on _mydb_.* to '_mydb_user_'@'_server_name_' identified by '_mydb_pass_';
grant all on _mydb_.* to '_mydb_user_'@'localhost' identified by '_mydb_pass_';

-- grant all on _mydbtest_.* to 'superadmin'@'localhost' identified by 'superadmin';
-- grant all on _mydbtest_.* to 'mydb_user'@'localhost' identified by 'mydb_pass';
-- grant all on _mydbtest_.* to '_mydb_user_'@'_server_name_' identified by '_mydb_pass_';
grant all on _mydbtest_.* to '_mydb_user_'@'localhost' identified by '_mydb_pass_';

-- Mais, ca serait plus prudent de limiter les droits (au lieu de "grant all"):
-- grant select,insert,update,delete on _mydb_.* to ...
flush privileges;




/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



-- USE _mydb_;

-- Est-ce bien utile ?
-- SET FOREIGN_KEY_CHECKS = 0;