Использование логинов, пользователей, разрешений в SQL Server 2005 Express - PullRequest
1 голос
/ 26 февраля 2011

Я подключился к SQL Server с проверкой подлинности Windows (Admin).

Затем я создал имя входа для моего SQL Server 2005 Express как:

CREATE LOGIN bob WITH PASSWORD = 'bobpass'. 

Теперь я закрыл SQL Server& затем снова открыл его, и на этот раз я соединил его с логином 'bob'.

Теперь я выполнил это: SELECT CURRENT_USER.

Он дал вывод: guest

Почему так?

Это потому, что я не создал ни одного пользователя внутри bob логина?

1 Ответ

3 голосов
/ 26 февраля 2011

CURRENT_USER вернет субъект базы данных (пользователя). bob - принципал сервера (логин). Если вы не предоставили доступ к какой-либо базе данных и не добавили bob ни в одну из встроенных групп безопасности сервера, он не будет иметь доступа ни к какой базе данных, кроме master и tempdb. В этих двух базах данных он будет распознан как guest. Это значение по умолчанию, вы можете заметить отличия от этого описания, если в вашей установке что-то изменилось по сравнению с новой установкой (например, вы можете обнаружить, что bob имеет доступ к большему количеству баз данных, потому что эти базы данных включили guest).

Таким образом, в основном вы угадали: bob - это guest, потому что у него нет явного участника базы данных (пользователя) и он не является членом sysadmin (в этом случае он будет dbo в каждой базе данных ).

...