15 октября 2009

В команде серверов замена

Сервер db1, который мы до сих использовали, помер. Вместо него на поле вышел сервер db2. Там, к сожалению, снова надо заводить пользователей и делать персональные базы данных... :/

3 комментария:

  1. Я уже говорил, что у меня есть java программа, которой скармливается текстовый файл содержащий логины студентов.
    На выходе выдаётся скрипт, который нужно запустить на целевой БД и все пользователи будут созданы.
    Я думаю, что у вас тоже были такие скрипты, просто на всякий случай опишу возможности.

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

    ОтветитьУдалить
  2. Нет, не было. Сделал всё руками минут за 5. А твой скрипт логины тоже создаёт на сервере :) ?

    У меня у каждого есть персональная БД (названная по фамилии студента). А смотрю я на SQL код, а не на созданные таблицы.

    ОтветитьУдалить
  3. Да, логины на сервере создаёт, и привязывает их к windows auth. То есть студентам не нужно запоминать пароль/логин. База данных у всех студентов группы одна и та же. Но они не видят, что происходит в другой схеме. Например, 2009_group_442 БД для 442 группы в 2009 году.
    Так легче и администраторам.
    Кроме того, я иногда использую визуализатор (который можно отключить) для рисования диаграмм. Всё-таки, после написания "ручками" для большой БД можно использовать и графический интерфейс для отображения таблиц и связей между ними и я считаю неплохой практикой использование графических средств (после изучения того, как это делать ручками). Я честно предупреждаю, что КР будет на листочках, так что синтаксис все равно учить нужно.
    Приведу сгенерированный скрипт ниже:

    /* Создание пользователей SQL Server */
    CREATE LOGIN [MATH\mXXaaa] FROM WINDOWS WITH DEFAULT_DATABASE=[2009_group_XXX], DEFAULT_LANGUAGE=[us_english]
    GO

    /* Создание пустой схемы */
    CREATE SCHEMA mXXaaa_schema
    GO

    CREATE USER [MATH\mXaaa] WITH DEFAULT_SCHEMA=mXXaaa_schema
    GO

    GRANT SELECT, INSERT, DELETE, UPDATE ON SCHEMA::mXXaaa_schema TO [MATH\mXXaaa]
    GO

    GRANT REFERENCES ON SCHEMA::mXXaaa_schema TO [MATH\mXXaaa]
    GO

    GRANT CREATE TABLE TO [MATH\mXXaaa]
    GO

    ОтветитьУдалить