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

Откуда:
Сообщений: 193
Не могу найти, есть ли в MS SQL возможность запустить процедуру, чтобы она выполнялась от имени другого пользователя?
Например в Oracle говорят по умолчанию процедуры выполняются от имени создателя(владельца) процедуры.

Например залогонился User.
надо сделать чтобы процедура dbo.proc выполнилась с правами dbo.
11 ноя 02, 08:28    [74376]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимой процедуры от имени другого пользователя (создателя процедуры  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Процедура всегда выполняется от имени владельца (как правило dbo), а вот пермишэн на её выполнение определенным пользователем (или группы пользователей) надо прописывать.
11 ноя 02, 08:54    [74385]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимой процедуры от имени другого пользователя (создателя процедуры  [new]
Алексей Кубенко
Guest
А она и так выполняется с правами dbo.
Например вы в процедуре можете сделать select по таблице, к которой юзер не имеет у вас доступа, но если вы сделаете exec или sp_executesql, то это уже отработает не от dbo, а от юзера вызвавшего процедуру.
проще говоря
SELECT * FROM SOMETABLE выполнится независимо от прав пользователя на таблицу SOMETABLE, а
EXEC ('SELECT * FROM SOMETABLE') не выполнится если юзер не имеет прав на таблицу. Но это тоже можно обойти используя функцию OPENROWSET указав в ней имя пользователя и пароль имеющего доступ к данной таблице.
11 ноя 02, 09:07    [74390]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимой процедуры от имени другого пользователя (создателя процедуры  [new]
Denis@nk
Member

Откуда:
Сообщений: 193
Обычному пользователю SQL не дает в процедуре отключить триггер:

CREATE PROCEDURE [dbo].[set_kur] (@from int, @to int) AS
set nocount on
ALTER TABLE sm DISABLE TRIGGER chek_owner
update sm set sm_idkur=@to where sm_idkur=@from
ALTER TABLE sm ENABLE TRIGGER chek_owner

пришлось добавить пользователя в группу db_ddladmin.

Да и мне кажется вы мне лапшу вешаете.

CREATE PROCEDURE [dbo].[test_proc] AS
select user

эта процедура возвращает имя залогонившегося пользователя. Соответственно все процессы идут от его имени. Просто разрешение на таблицы уже не проверяется.
12 ноя 02, 08:30    [74896]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Запуск хранимой процедуры от имени другого пользователя (создателя процедуры)  [new]
Denis@nk
Member

Откуда:
Сообщений: 193
Картинка с другого сайта.
26 июл 17, 12:28    [20676119]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимой процедуры от имени другого пользователя (создателя процедуры)  [new]
Denis@nk
Member

Откуда:
Сообщений: 193
Картинка с другого сайта.
26 июл 17, 12:32    [20676132]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить