MySQL - автоматизировать создание базы данных, таблиц и пользователей - PullRequest
1 голос
/ 04 мая 2011

Для развертывания приложения требуется создать базу данных для базовой аутентификации пользователя.Чтобы автоматизировать процесс, я написал командный файл MySQL:

grant all on jetty.* to 'jetty'@'localhost' identified by 'jetty';

create database if not exists jetty;
use jetty;

create table if not exists users
(
  id int unsigned not null auto_increment,
  username varchar(100) not null,
  password binary(60) not null,
  primary key(id),
  unique(username)
);

create table if not exists roles
(
  id int unsigned not null auto_increment,
  role varchar(100) not null,
  primary key(id),
  unique(role)
);

create table if not exists user_roles
(
  user_id int unsigned not null,
  role_id int unsigned not null,
  unique(user_id, role_id),
  index(user_id)
);

insert into users(username, password) values('jetty', $2a$10$YX3cYqn9nHmCOmPZBHXrQ.2nxrktB3CRYG8tXmBmmWvrDKU8uwRSe');

Я делаю это впервые, поэтому я совершенно уверен, что есть некоторые вещи, которые я могу не понять.Это действительно хорошая идея, чтобы заполнить таблицу users с одним пользователем?Чтобы войти в мое приложение, должна быть какая-то учетная запись, но я не совсем уверен.

Еще одна вещь, которая меня беспокоит, это оператор grant.Интересно, может ли grant all не быть достаточно ограничительным.

Кроме того, должен ли я проверять наличие if not exists на каждом столе, который я собираюсь создать?

Существуют ли лучшие рекомендации, касающиеся пакетной обработкискрипты?

1 Ответ

1 голос
/ 04 мая 2011
  1. Начальная загрузка вашей базы данных с пользователем в порядке. Просто не забудьте обновить скрипт, если когда-нибудь выйдет «Пристань»!
  2. GRANT ALL не очень ограничительный, это правда. Как правило, более плотная фиксация - это хорошо.
  3. Проверка, ЕСЛИ НЕ СУЩЕСТВУЕТ, означает две вещи: (а) ваш скрипт не потерпит неудачу, если таблица уже существует [хорошо], и (б) вы не будете обновлять существующую таблицу [плохо]. Мне нравится бросать таблицу, если она существует, а затем создать таблицу.

Обязательно сделайте резервную копию, прежде чем DROP использовать эти таблицы.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...