Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Контексты безопасности и связанный сервер Access  [new]
HornetBlack
Member

Откуда: Питер
Сообщений: 62
Помогите, пожалуйста, разобраться с контекстами безопасности в связанном сервере.

SQL Server 2012 крутится на сервере в домене, запущен от "NT Services\MSSQLSERVER". На этом же сервере в расшаренной папке лежит база mdb (Access-2003), доступная по записи всем пользователям сервера. Необходимо агентом периодически выполнять перепись данных из сиквельной таблицы в таблицу акцесса. В агенте записана задача из трех шагов:

1. Подключение связанного сервера:

SELECT * FROM master.dbo.sysservers WHERE srvname = N'TEST'
IF @@ROWCOUNT<>0 RETURN
EXEC sp_addlinkedserver
@server = N'TEST',
@provider = N'Microsoft.ACE.OLEDB.12.0',
@srvproduct = N'OLE DB Provider for ACE',
@datasrc = N'C:\DB\test.mdb';
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'TEST',
@useself=FALSE,
@rmtuser=N'Admin',
@rmtpassword=N''

2. Импорт данных:

SELECT * FROM master.dbo.sysservers WHERE srvname = N'TEST'
IF @@ROWCOUNT=0 RETURN
INSERT INTO TEST...mdbtbl (A,B,C) SELECT A,B,C FROM sqltbl

3. Отключение сервера:

SET NOCOUNT ON
SELECT * FROM master.dbo.sysservers WHERE srvname = N'TEST'
IF @@ROWCOUNT<>0 EXEC sp_dropserver 'TEST','droplogins'

В ручном режиме (в SMS) при подключении к серверу доменной записью все шаги выполняются без проблем, а при запуске задания в агенте на втором шаге возникают проблемы с правами (первому и третьему хватает дефолтных прав агента).

Если не указывать учетку для второго шага, то он проваливается по невозможности инициализации провайдера:

Executed as user: NT SERVICE\SQLSERVERAGENT. Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "TEST". [SQLSTATE 42000] (Error 7303) OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "TEST" returned message "Unspecified error". [SQLSTATE 01000] (Error 7412). The step failed.

Если указать пользователя dbo, доменного или локального пользователя, то он проваливается по доступу к mdb:

Executed as user: dbo. Access to the remote server is denied because the current security context is not trusted. [SQLSTATE 42000] (Error 15274). The step failed.

Подскажите, пожалуйста, кто имел опыт, где и какие права настроить?
20 янв 14, 11:29    [15439302]     Ответить | Цитировать Сообщить модератору
 Re: Контексты безопасности и связанный сервер Access  [new]
aleks2
Guest
>>Executed as user: NT Kremlin\Путин

Уморил.
Это MS SQL Server может тебе верить, что ты "Путин", а ОСь MS Windows такому не обучена - мандат (пароль т.е.) нада.

Агенту можно и нужно задать учетку, а учетке агента дать права доступа к файлу Access.
20 янв 14, 12:10    [15439675]     Ответить | Цитировать Сообщить модератору
 Re: Контексты безопасности и связанный сервер Access  [new]
HornetBlack
Member

Откуда: Питер
Сообщений: 62
aleks2
>>Executed as user: NT Kremlin\Путин

Уморил.
Это MS SQL Server может тебе верить, что ты "Путин", а ОСь MS Windows такому не обучена - мандат (пароль т.е.) нада.

Перед тем, как умориться, прочти документацию )
Виртуальные учетные записи
Виртуальные учетные записи в Windows Server 2008 R2 и Windows 7 представляют собой управляемые локальные учетные записи, которые предоставляют следующие возможности для упрощения администрирования служб. Управление виртуальной учетной записью осуществляется автоматически, и она может получать доступ к сети в среде домена. Если во время установки SQL Server в Windows Server 2008 R2 или Windows 7 используется значение по умолчанию для учетных записей служб, используется виртуальная учетная запись с именем, соответствующим имени экземпляра, в формате NT SERVICE\<SERVICENAME>. Службы, запускаемые от имени виртуальных учетных записей, получают доступ к сетевым ресурсам с использованием учетных данных учетной записи компьютера в формате <domain_name>\<computer_name>$.
...
Служба
Имя виртуальной учетной записи
Экземпляр по умолчанию службы компонента Компонент Database Engine NT SERVICE\MSSQLSERVER

Единственное, что я не попробовал, так это предоставить права на файловый доступ указанной компьютерной учетке, сейчас проверю )
20 янв 14, 12:33    [15439929]     Ответить | Цитировать Сообщить модератору
 Re: Контексты безопасности и связанный сервер Access  [new]
aleks2
Guest
HornetBlack
Перед тем, как умориться, прочти документацию )

Я то читал.

HornetBlack
Единственное, что я не попробовал, так это предоставить права на файловый доступ указанной компьютерной учетке, сейчас проверю )

А чего ты ваще пробовал? В бубен бил?
20 янв 14, 13:10    [15440184]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить