2013-02-20 3 views
6

Я пытаюсь предоставить пользователю домена SQL Server 2008. Этот пользователь должен иметь возможность входа в БД с помощью студии управления сервером и запускать сценарии PowerShell, выполняющие запросы SELECT в базе данных , Моя проблема в том, что мои настройки не сохраняются.SQL Server 2008 Отображение пользовательских сопоставлений не сохраняется

В студии управления сервером я нажимаю правой кнопкой мыши на Security-> Logins-> right click on -> Properties-> User mappings-> пометить мою базу данных, которая является первой, предоставленной 'db_datareader' и 'public' , Нажмите OK.

Ошибка не появляется. Но когда я снова проверяю сопоставления пользователей, моя база данных больше не отмечена! Что я пропустил? Действительно озадачен ... должно быть что-то очень просто ...

enter image description here

--update--:

soved: удалил логин + пользователя, добавил их обратно, а остальные .. Теперь ОК. много thx!

+0

Вы пытались выполнить его скриптинг, а затем запустить, чтобы увидеть, есть ли какие-либо предупреждения/ошибки, которые SSMS, возможно, не обработали по какой-либо причине? – mservidio

+1

@mservidio Пробовал это, без ошибок, все еще не сохранялся. В конце я удалил пользователя и логин, добавлю его обратно, теперь все в порядке. Но спасибо за это, я не думал об этом написании. – user1866880

ответ

4
use master; 
GO 

create login [<domain\user>] from windows; 
GO 

use [<yourdb>]; 
GO 

create user [<domain\user>] for login [<domain\user>]; 
GO 

ALTER ROLE db_datareader ADD MEMBER [<domain\user>]; 
GO 
+2

Спасибо! Я отмечаю ваш сценарий. Это оказалось глюком. Я удалил пользователя и запустил его, повторно добавил и предоставил привилегии, все сделано из студии управления, так же, как и раньше, теперь все в порядке. не знаю, почему настройки не сохраняются. – user1866880

+0

Я изменил последнюю строку, согласно [this] (https://msdn.microsoft.com/en-us/library/ms187750 (v = sql.110) .aspx) doc , sp_ будет или будет устаревшим. – Benjol