Разница между пользователем и входом в SQL Server

Недавно я работал во многих областях SQL Server, с которыми я обычно не общаюсь. Один из них, который меня смущает, - это область логинов и пользователей. Похоже, это должна быть довольно простая тема...

Кажется, что каждый логин может иметь только 1 пользователя, и каждый пользователь может иметь только 1 логин.

Вход может быть связан с несколькими таблицами, что связывает этот пользователь со многими таблицами.

Итак, мой вопрос в том, почему даже есть логин и пользователь? они, похоже, почти одинаковы. Каковы различия или что я, кажется, не хватает?

Ответ 1

A "Вход" предоставляет основную запись в SERVER.

"Пользователь" предоставляет вход в систему в одну базу данных.

Один "Вход" может быть связан со многими пользователями (по одной на базу данных).

Каждый из вышеуказанных объектов может иметь разрешения, предоставляемые ему на своем собственном уровне. См. Следующие статьи для объяснения каждого

Ответ 2

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

Ответ 3

Вкратце,

Логины будут иметь доступ к серверу.

и

Пользователи будут иметь доступ к базе данных.

Ответ 4

Я думаю, что есть хорошее сообщение в блоге MSDN об этой теме от Laurentiu Cristofor:

Первой важной вещью, которая должна быть понята о безопасности SQL Server, является то, что в ней задействованы две области безопасности - сервер и база данных. Область сервера охватывает несколько областей базы данных. Вся работа выполняется в контексте некоторой базы данных, но чтобы выполнить эту работу, нужно сначала получить доступ к серверу, а затем получить доступ к базе данных.

Доступ к серверу предоставляется через логины. Существуют две основные категории логинов: аутентифицированные логины SQL Server и аутентифицированные в Windows логины. Я, как правило, ссылаюсь на них, используя более короткие имена логинов SQL и логинов Windows. Аутентифицированные для входа в систему Windows могут быть либо логинами, сопоставленными с пользователями Windows, либо входами, сопоставленными с группами Windows. Таким образом, чтобы иметь возможность подключаться к серверу, нужно иметь доступ через один из этих типов или логинов - логины предоставляют доступ к серверной области.

Но логинов недостаточно, потому что работа обычно выполняется в базе данных, а базы данных - это отдельные сферы. Доступ к базам данных предоставляется через пользователей.

Пользователи сопоставляются с входами и отображение выражается свойством SID для пользователей и пользователей. Входные карты сопоставляются с пользователем в базе данных, если их значения SID идентичны. В зависимости от типа входа у нас есть возможность категоризации пользователей, которые имитируют указанную выше классификацию для входа в систему; поэтому у нас есть пользователи SQL и пользователи Windows, а последняя категория состоит из пользователей, сопоставленных с входами пользователей Windows и пользователей, сопоставленных с входами в группы Windows.

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

что ссылка на полный пост.

Ответ 5

Я думаю, что это очень полезный вопрос с хорошим ответом. Просто добавьте мои два цента из MSDN Создать учетную запись:

Вход - это руководитель безопасности или объект, который может быть аутентифицирован защищенной системой. Пользователям необходим логин для подключения к SQL Server. Вы можете создать логин на основе принципала Windows (например, пользователя домена или группы домена Windows), или вы можете создать логин, который не основан на главном ОС Windows (например, для входа в SQL Server).

Примечание:
Чтобы использовать аутентификацию SQL Server, механизм базы данных должен использовать аутентификацию в смешанном режиме. Дополнительные сведения см. В разделе Выбор режима проверки подлинности.

В качестве принципала безопасности разрешениям могут быть предоставлены логины. Объем логина - это весь движок базы данных. Чтобы подключиться к конкретной базе данных на экземпляре SQL Server, логин должен быть сопоставлен пользователю базы данных. Разрешения внутри базы данных предоставляются и отклоняются пользователю базы данных, а не логину. Разрешения, которые имеют весь экземпляр SQL Server (например, разрешение CREATE ENDPOINT), могут быть предоставлены для входа в систему.