Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права доступа к master..xp_cmdshell / 8 сообщений из 8, страница 1 из 1
06.02.2002, 15:52
    #32022335
DennisL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
Мне необходимо посылать сообщения от одних пользователей другим из сохраненных продцедур, для этого я использую master..xp_cmdshell. Но для того чтобы пользователь мог послать сообщение необходимо присвоить ему права Execute не только на продцедуру из которой идет посылка сообщения, но и на xp_cmdshell ... что нехотелось бы делать из соображений безопасности ...
Как можно обойти это ограничение ?
...
Рейтинг: 0 / 0
06.02.2002, 16:07
    #32022338
dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
Если не требуется моментальной передачи сообщения, а надо просто послать уведомление, пусть и с некоторой задержкой, записывайте из процедуры сообщения в некоторую табличку. И сделайте Job который булет с определенной периодичностью (например раз в минуту) рассылать эти сообщения (владельцем джоба сделайте админа). Правда будет некоторая задержка, и доп. нагрузка на сервер...
...
Рейтинг: 0 / 0
06.02.2002, 17:06
    #32022342
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
чтобы пользователь мог послать сообщение необходимо присвоить ему права Execute не только на продцедуру из которой идет посылка сообщения, но и на xp_cmdshell ... что нехотелось бы делать из соображений безопасности

BOL - Transact-SQL Reference - SET - System Stored Procedures - xp_sqlagent_proxy_account
" SQL Server Agent proxy accounts allow SQL Server users who do not belong to the sysadmin fixed server role to execute xp_cmdshell and own SQL Server Agent jobs. The administrators can assign appropriate security permissions to the proxy account to control the ability of these jobs to access resources in the network.

When a SQL Server user executes a command prompt command using xp_cmdshell, the command must execute in the security context of a Windows account. If the SQL Server user is a member of the sysadmin fixed server role, SQL Server executes the command prompt command using the Windows account under which the SQL Server service is running. If the SQL Server user executing xp_cmdshell is not a member of the sysadmin fixed server role, SQL Server executes the command using the Windows account specified as the SQL Server Agent proxy account . If no SQL Server Agent proxy account has been set, the user gets an error.

Syntax
xp_sqlagent_proxy_account
{ N'GET' |
N'SET', N'agent_domain_name', N'agent_username', N'agent_password'
}
"
NB!
- При использовании xp_sqlagent_proxy_account проверка заданной учетной записи не производиться
- Все параметры чувствительны к регистру

Эту же операцию можно проделать в EM - Managament - SQL Server Agent - Properties - Job System - секция Non-SysAdmin job step proxy account
...
Рейтинг: 0 / 0
07.02.2002, 10:13
    #32022389
DennisL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
Я правильно понял что :
я создаю SQL Server Agent proxy account и затем присваюваю пользователям права execute на xp_cmdshell, но они будут запускать эти команды не с администратороского account а с SQL Server proxy account (которому можно обрезать все права на сервере ...)
Либо пользователям не надо права execute на xp_cmdshell ?
...
Рейтинг: 0 / 0
07.02.2002, 10:54
    #32022399
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
Если вы хотите, чтобы пользователь сам запускал xp_cmdshell, то конечно ему нужны соответсвующие права.
Либо можно создать свою процедуру(с владельцем dbo), которая будет запускать xp_cmdshell с уже нужными параметрами и только с ними и разрешить пользователю запускать эту процедуру. Тогда явные права на xp_cmdshell пользователю не нужны.

Но и в том и другом случае права для запущенной через xp_cmdshell программы будут определяться SQLServerAgentproxyaccount - ом (если пользователь не sysadmin)
...
Рейтинг: 0 / 0
07.02.2002, 11:32
    #32022407
DenisL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
спасибо, все понятно !
...
Рейтинг: 0 / 0
08.02.2002, 12:20
    #32022515
DennisL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
Все понятно но всеравно не работает !!!

Попробую описать ситуацию (может я что то упустил ...) :

1. В базе данных пользователей есть sp net_send_message она при необходимости вызываеться из других sp когда надо посылать сообщение, у пользователей есть права на все необходимые sp и на net_send_message

2. У пользователей нет не каких прав на master базу данных ...

3. В качестве account-а для SQL Server Agent proxy указан SQLAgentcmdexec account ктороый был создан автоматически при инсталяции SQL Server-а (может в этом и проблемма ?)

При выполнении пользователями sp содержащих net_send_message ошибки не происходит но и сообщения не посылаються ... У меня сообщения посылаються (т.к. я dbo)

в чем может быть проблемма ?
...
Рейтинг: 0 / 0
08.02.2002, 18:30
    #32022546
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права доступа к master..xp_cmdshell
1.
При выполнении пользователями sp содержащих net_send_message ошибки не происходит но и сообщения не посылаються
Что возвращает xp_cmdshell ?

2. У SQLAgentcmdexec имеются достоточные права внешнуюю программу ?

3. Попробуйте использовать какую-нибудь другую локальную или доменную учетную запись. В качестве эксперимента можго попробовать и учетную запись локального администратора
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права доступа к master..xp_cmdshell / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]