Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
Мне необходимо посылать сообщения от одних пользователей другим из сохраненных продцедур, для этого я использую master..xp_cmdshell. Но для того чтобы пользователь мог послать сообщение необходимо присвоить ему права Execute не только на продцедуру из которой идет посылка сообщения, но и на xp_cmdshell ... что нехотелось бы делать из соображений безопасности ... Как можно обойти это ограничение ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2002, 15:52 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
Если не требуется моментальной передачи сообщения, а надо просто послать уведомление, пусть и с некоторой задержкой, записывайте из процедуры сообщения в некоторую табличку. И сделайте Job который булет с определенной периодичностью (например раз в минуту) рассылать эти сообщения (владельцем джоба сделайте админа). Правда будет некоторая задержка, и доп. нагрузка на сервер... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2002, 16:07 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
чтобы пользователь мог послать сообщение необходимо присвоить ему права 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2002, 17:06 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
Я правильно понял что : я создаю SQL Server Agent proxy account и затем присваюваю пользователям права execute на xp_cmdshell, но они будут запускать эти команды не с администратороского account а с SQL Server proxy account (которому можно обрезать все права на сервере ...) Либо пользователям не надо права execute на xp_cmdshell ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 10:13 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
Если вы хотите, чтобы пользователь сам запускал xp_cmdshell, то конечно ему нужны соответсвующие права. Либо можно создать свою процедуру(с владельцем dbo), которая будет запускать xp_cmdshell с уже нужными параметрами и только с ними и разрешить пользователю запускать эту процедуру. Тогда явные права на xp_cmdshell пользователю не нужны. Но и в том и другом случае права для запущенной через xp_cmdshell программы будут определяться SQLServerAgentproxyaccount - ом (если пользователь не sysadmin) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 10:54 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
спасибо, все понятно ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 11:32 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
Все понятно но всеравно не работает !!! Попробую описать ситуацию (может я что то упустил ...) : 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) в чем может быть проблемма ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2002, 12:20 |
|
||
|
Права доступа к master..xp_cmdshell
|
|||
|---|---|---|---|
|
#18+
1. При выполнении пользователями sp содержащих net_send_message ошибки не происходит но и сообщения не посылаються Что возвращает xp_cmdshell ? 2. У SQLAgentcmdexec имеются достоточные права внешнуюю программу ? 3. Попробуйте использовать какую-нибудь другую локальную или доменную учетную запись. В качестве эксперимента можго попробовать и учетную запись локального администратора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2002, 18:30 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3506&tid=1823977]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 360ms |

| 0 / 0 |
