0

Мое требование заключается в том, что пользователь выполняет изменения НЕ МОЖЕТ быть sysadmin (он может иметь все другие права, но не системный администратор).Как изменить базу данных на связанном сервере без прав SYSADMIN?

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

EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB') at [REMOTESERVER] 

Этот запрос работает, как только я добавить сисадмина право на пользователя, но без права, он дает следующее сообщение об ошибке:

The server principal "USERWITHOUTSYSADMIN" is not able to access the database "REMOTEDB" under the current security context. 

Я на SQL Serve 2008

Пожалуйста, помогите!

+0

как ваш привязанный сервер создан – DForck42

+0

sp_addlinkedserver 'удаленный_сервер' Exec sp_serveroption 'teREMOTESERVER', 'Data Access', 'правда' – Chicago

+0

? одно дело отметить, что команда восстановления базы данных работает. Поэтому я предполагаю, что все команды, связанные с работой сервера, но все, что связано с самой базой данных, не – Chicago

ответ

0

После долгих исследований: Это не возможно :(

0

Поместите команду EXEC в хранимую процедуру и предоставите пользователю выполнение процедуры. Он не будет останавливать sysadmin от его выполнения, но это позволит другим выполнить его также. ОЧЕНЬ, ОЧЕНЬ осторожны с этим!

+0

Могу ли я добавить выполнение пользователю к существующей процедуре sp_executesql и использовать эту процедуру? – Chicago

+0

FYI , Это не помогло, но это была очень хорошая идея. – Chicago

+0

Извините, я знаю, что мы делали что-то подобное в том месте, где я работал, но это было давно, и это было довольно грязно. Возможно ли дать более подробное объяснение того, что это такое? вы пытаетесь достичь? Может возникнуть лучшее общее решение, прежде чем вы выполните что-то подобное. –

0

Можете ли вы разрешить пользователю выдавать себя за кого-то с соответствующими разрешениями?

EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB') 
    AS USER = 'UserWithAppropriatePermissions' 
    AT [REMOTESERVER] 
+0

В этом проблема. Кажется, что единственным подходящим разрешением является предоставление прав пользователя sysadmin (чего я не могу сделать). Таким образом, я не могу предоставлять права sysadmin пользователю на локальном сервере или удаленном компьютере. Я попытался сделать это с помощью sa, но у локального пользователя недостаточно полномочий для выдачи себя за sa :) – Chicago

+0

Можете ли вы предоставить пользователю права доступа ALTER для объекта базы данных? Этого должно быть достаточно для ваших целей. –

+0

Как это сделать? Я попытался сделать это через интерфейс, но это не казалось надежным способом (щелкните правой кнопкой мыши по db -> permissions -> alter). Могу я сделать с sql? – Chicago

 Смежные вопросы

  • Нет связанных вопросов^_^