MSSQLSM 2008 нечетный вход в систему при выборе оператора - PullRequest
2 голосов
/ 11 июля 2011

У меня есть несколько пользователей на моем сервере SQL, каждый из которых МОЖЕТ войти в систему на сервере; однако один пользователь, вошедший в систему, не может ничего запускать (выбирать, изменять, редактировать) в определенном представлении, но может во всех остальных.

Пользовательские настройки такие же, как и у другой учетной записи, которая имеет полный доступ (серьезно они идентичны). Для пользователя, который не может выбрать и т. Д. Из его представления, я получаю эту ошибку:

SELECT Top 1 * From View  
Msg 18456, Level 14, State 1, Line 1
Login failed for user 'some user'.

Однако, когда я пытаюсь сделать это

select top 1 * from view2

я получаю эту ошибку:

Msg 2809, Level 18, State 1, Line 1
The request for procedure 'View2' failed because 'view2' is a view object.

но опять это исчезает, когда я удаляю верхнюю 1 и отлично работает:

select * from View2

Так что у меня три конфликтующие проблемы ... когда я делаю select * from every view бар, первый вид работает, когда я делаю select top 1 * из тех же самых взглядов, он не работает, и когда я пытаюсь что-либо (выбрать, изменить , изменить) с первого взгляда я получаю ошибку при входе, хотя я уже вошел в систему.

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

Я не могу найти папку безопасности> аудита в обозревателе объектов, чтобы проверить там, но когда я проверяю управление> Журналы SQL Server, я тоже там ничего не нахожу ..

Любая помощь очень ценится, поскольку все, что я до сих пор нашел, касается неспособности фактически войти в систему на полной остановке сервера.

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Возможно, у вас

  • проблем со связанным сервером.Таким образом, представления обращаются к связанному серверу, где сопоставление имени входа неверно

  • У вас есть 2 представления в разных схемах.Используете ли вы select * from view или select * from dbo.view: согласны ли вы ?

1 голос
/ 11 июля 2011

Когда вы делаете select 1 * from ViewName и получаете Login Failed, это, возможно, указывает на одно из следующего:

Ссылка на таблицу / представление из другой базы данных:

Этот пользователь может не иметь прав для просмотра объектов в другой базе данных.

Ссылка на таблицу / представление с удаленного сервера или связанного сервера:

Этот пользователь может бытьиспользуя сопоставление для любого из тех серверов, где данные для входа могут быть устаревшими или могут не иметь надлежащих учетных данных.

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