неэффективный преподаватель, по мнению министра образования
15 октября 2009
В команде серверов замена
Сервер db1, который мы до сих использовали, помер. Вместо него на поле вышел сервер db2. Там, к сожалению, снова надо заводить пользователей и делать персональные базы данных... :/
Я уже говорил, что у меня есть java программа, которой скармливается текстовый файл содержащий логины студентов. На выходе выдаётся скрипт, который нужно запустить на целевой БД и все пользователи будут созданы. Я думаю, что у вас тоже были такие скрипты, просто на всякий случай опишу возможности.
Особенности скрипта таковы, что каждый студент работает в своей схеме, при этом он не видит схемы других участников и не может повредить им. Преподаватель имеет возможность просмотра всех схем. При этом ему очень легко по созданной таблице определить, кто её создал, поскольку рядом с названием таблицы отображается схема, в которой она создана.
Да, логины на сервере создаёт, и привязывает их к 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
Я уже говорил, что у меня есть java программа, которой скармливается текстовый файл содержащий логины студентов.
ОтветитьУдалитьНа выходе выдаётся скрипт, который нужно запустить на целевой БД и все пользователи будут созданы.
Я думаю, что у вас тоже были такие скрипты, просто на всякий случай опишу возможности.
Особенности скрипта таковы, что каждый студент работает в своей схеме, при этом он не видит схемы других участников и не может повредить им. Преподаватель имеет возможность просмотра всех схем. При этом ему очень легко по созданной таблице определить, кто её создал, поскольку рядом с названием таблицы отображается схема, в которой она создана.
Нет, не было. Сделал всё руками минут за 5. А твой скрипт логины тоже создаёт на сервере :) ?
ОтветитьУдалитьУ меня у каждого есть персональная БД (названная по фамилии студента). А смотрю я на SQL код, а не на созданные таблицы.
Да, логины на сервере создаёт, и привязывает их к 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