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