Переход от проверки подлинности домена к проверке подлинности SQL Server

Всем привет, столкнулся с проблемой, которая поставила меня в тупик.

Я собрал базу данных в SQL Server Express, и у меня возникла странная проблема с разрешениями. База данных находится на моей машине разработки с пользователем домена: DOMAIN\albertp. Мой сервер базы данных разработки настроен на режим «SQL Server и аутентификация Windows». Я могу редактировать и запрашивать свою базу данных без каких-либо проблем, когда я вхожу в систему, используя проверку подлинности Windows.

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

SELECT * FROM [Testing].[dbo].[AuditingReport]

Я получил:

Msg 18456, Level 14, State 1, Line 1
Login failed for user 'auditor'.

Я вошел на сервер из SQL Server Management Studio как «аудитор» и не вижу в журнале ошибок ничего о сбое входа.

Я уже запустил:

Use Testing;
Grant All to auditor;
Go

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

Моя конечная цель состоит в том, чтобы база данных была доступна с набора страниц PHP, используя либо общий логин (отсюда «аудитор»), либо логин, специфичный для набора отдельных пользователей.


person Albert Perrien    schedule 03.01.2011    source источник


Ответы (1)


ПРЕДВЕДАТЬ ВСЕ не выполняет действие вы верите, что это так.

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

Вот список доступных ролей уровня базы данных.

Вы можете добавить существующего пользователя к роли уровня базы данных с помощью системной хранимой процедуры sp_AddRoleMember< /а>. Например, следующее предоставит вашему пользователю разрешение READ для всех объектов в данной базе данных:

EXEC sp_addrolemember 'db_datareader','auditor'

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

person John Sansom    schedule 03.01.2011
comment
Спасибо! Это помогло; Теперь я могу просматривать таблицы как «аудитор». Есть ли отдельное разрешение для просмотра? Я все еще не могу открыть представление «AuditingReport», я получаю ту же ошибку, когда пытаюсь запустить его, как и раньше. - person Albert Perrien; 04.01.2011
comment
ПРЕДОСТАВИТЬ SELECT ON AuditingReport Аудитору - person John Sansom; 04.01.2011
comment
Я собираюсь принять данный ответ; Я считаю, что нашел основную причину проблемы, и когда я это проверю, я опубликую обновление здесь. - person Albert Perrien; 04.01.2011
comment
Хорошо, решил. Проблема заключалась в том, что в представлении, к которому я пытался получить доступ, была связанная таблица; и в базе данных, в которой размещалась связанная таблица, не был настроен доступ для учетной записи «аудитора». Я изменил другую базу данных, чтобы обеспечить этот доступ (через свойства связанного сервера - безопасность), и это решило проблему. - person Albert Perrien; 04.01.2011