Я не администратор базы данных и поэтому ничего не знаю о настройках безопасности SQL 2005 и т. Д. Я пытаюсь создать пустую копию нашей базы данных, создав полную базу данных из сценариев, сгенерированных SQL Management Studio. К сожалению, я не знаю, что делают многие параметры, и документация MSFT по этим процессам невелика.
Есть возможность сгенерировать скрипт для схем, таблиц, представлений и пользователей. Меня смущают именно пользователи, потому что я не понимаю, как они влияют на использование базы данных. В нашей команде есть некоторые разработчики, которые находятся в этом списке, а некоторые нет, но каждый может делать с базой данных все, что угодно, по крайней мере, когда они размещают ее на своих собственных машинах.
Нужно ли мне сохранять этих пользователей в моей новой сгенерированной базе данных и что они делают?
У нас также есть пользователь dbo, который является владельцем db_owner и владеет многими нашими схемами. Что это за Пользователь dbo? Какое значение имеет владение схемами пользователя? Мы используем схемы в качестве «пространств имен» для группировки логически связанных таблиц в нашей базе данных, но я так понимаю, что для них есть нечто большее, чем это?
Существует также имя пользователя, привязанное к этому пользователю dbo, это логин одного из наших разработчиков в Windows NT, но у него нет своего собственного объекта User в списке ... имеет ли это какое-то значение? Это плохая вещь?
Другие пользователи являются гостями, INFORMATION_SCHEMA и sys, но я думаю, что это все значения по умолчанию?
Извините, но я невежественный администратор SQL и обычно оставлял эти вещи администратору базы данных на моей предыдущей работе!
Спасибо за любую помощь.
Чтобы создать клон вашей базы данных, обычно вам нужно скопировать пользователей. Пользователь в SQL Server позволяет вам назначать привилегии; например, может быть приложение, использующее вашу базу данных, которое имеет право читать и изменять данные, но не может создавать или удалять таблицы.
Упомянутые вами разработчики, которые имеют неограниченный доступ, вероятно, получают доступ к SQL Server из учетной записи Windows в группе администраторов. По умолчанию в SQL Server это сопоставлено с ролью сервера sysadmin, которая является высокопривилегированной ролью.
dbo, guest, sys и INFORMATION_SCHEMA - все это учетные записи по умолчанию. Я бы не стал слишком беспокоиться о них.
Все ответы на ваши вопросы сводятся к тому, что эти функции используются для управления разрешениями в базе данных. Вы хотите предоставить пользователям минимум разрешений, чтобы они не могли вмешиваться в то, что им не нужно. В этом простейшем случае это означает, что разработчики получают полный доступ к базам данных разработки, и каждая система или конечный пользователь, которым необходимо подключиться, получает учетную запись с необходимыми разрешениями.