Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проблема в правах

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Фев 05, 2016 11:27    Заголовок сообщения: Проблема в правах Ответить с цитатой

Добрый день.
Версия Microsoft SQL Server 2012 Standard (64-bit)
Если на двух базах стоит

ALTER DATABASE [test] SET TRUSTWORTHY ON;
ALTER DATABASE [test1] SET TRUSTWORTHY ON;

Владельцы одинаковые

На ManagementStudio под пользователем ex всё работает, а с клиента БОСС-Кадровик под пользователем ex с ролью public пишет

The server principal "ex" is not able to access the database "test1" under the current security context.
State:08004,Native:916,Origin:[Microsoft][SQL Server Native Client 11.0][SQL Server]

Запрос
select top 1 full_name from test.dbo.card
union all
select top 1 full_name from test2.dbo.card;

Запрос не отрабатывает, подскажите, пожалуйста, в чем может быть проблема?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 449

СообщениеДобавлено: Пт Фев 05, 2016 13:18    Заголовок сообщения: Ответить с цитатой

У вас test1, а в запросе test2?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Пт Фев 05, 2016 13:21    Заголовок сообщения: Ответить с цитатой

Nemoxur, добрый день.

Пользователь в БК работает из-под роли приложения (application role). Попробуйте в SSMS поднять роль приложения и затем выполнить тот же запрос.

Надо убедиться, что роль приложения, под которой Вы работаете в БК одной из тестовых БД, так же существует в другой БД, и, возможно, с тем же паролем.

Кстати, позвольте пользуясь случаем задать уважаемым читателям: где можно подсмотреть пароли, которые используются при создании ролей приложений средствами БК?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Пт Фев 05, 2016 13:31    Заголовок сообщения: Ответить с цитатой

Код:

use [test]

--query:
select user_name(), suser_name();

--result:
dbo, mydomain\myuser

--query:
select top 1
   full_name
from test.dbo.card
union all
select top 1
   full_name
from test1.dbo.card

--result:
ФИО1
ФИО2

--query:
sp_setapprole 'test_app_role', 'Pa$$W0rD'

--query:
select user_name(), suser_name();

--result:
test_app_role, mydomain\myuser

--query:
select top 1
   full_name
from test.dbo.card
union all
select top 1
   full_name
from test1.dbo.card

--result:
Msg 916, Level 14, State 1, Line 1
The server principal "mydomain\myuser" is not able to access the database "test1" under the current security context.


Вот как-то так можно сымитировать Вашу ситуацию.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Фев 05, 2016 14:03    Заголовок сообщения: Ответить с цитатой

У всех баз test, test1, test2 один владелец, у всех стоит TRUSTWORTHY ON

Это две, три базы данных БОСС-Кадровик

Запрос пробую под ролью приложения (application role) HR2_ADM

и там и там есть (application role) HR2_ADM а вот пароль как проверить, я не знаю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Пт Фев 05, 2016 15:01    Заголовок сообщения: Ответить с цитатой

Nemoxur, скажите, а что возвращает функция "select user_name()" выполненная в клиенте БК?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DUCKKK
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 16.09.2009
Сообщения: 1681

СообщениеДобавлено: Пт Фев 05, 2016 15:03    Заголовок сообщения: Ответить с цитатой

"где можно подсмотреть пароли, которые используются при создании ролей приложений средствами БК?" - это о чём?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Фев 05, 2016 15:23    Заголовок сообщения: Ответить с цитатой

Всем спасибо, разобрался.

Если работаешь например на базе TEST и хочешь получить данные из базы данных TEST1, то нужно в роль приложения добавить например таблицу card с правами просмотра в защищаемые объекты и иметь права доступа на саму таблицу card базы данных TEST1

Как-то так Razz
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Пт Фев 05, 2016 15:55    Заголовок сообщения: Ответить с цитатой

DUCKKK, добрый день.
При создании роли приложения внутри модуля "Администратор" выполняется команда:
Код:
 
XApplRole Create, Role_Code_[''];


Это своего рода обертка для инструкции:
Код:

SET @SQL = 'CREATE APPLICATION ROLE ' + quotename(@Role) + ' WITH PASSWORD = ' + quotename(@Pwd, '''') + ', DEFAULT_SCHEMA = ' + quotename(@Role)


Собственно, интересно было узнать какой использовался пароль для создания роли приложения.
Зачем? Да просто хотелось подменить строку при входе в модуль
Код:

execute { XApplRole Activate, @@role_code; }

на
Код:

exec sp_setapprole 'TEST_APP_ROLE', 'Pa$$W0rd', @fCreateCookie = true, @cookie = @cookie output;

чтобы затем используя значение @cookie выполнить возврат к исходному контекту безопасности. Это позволит проводить разные эксперименты Smile
Не зная пароль от роли приложения сделать это непросто.

Например, при создании новой роли я могу увидеть новый пароль используя профайлер, а для уже созданных?

Сейчас открыл справку дизайнера для оператора xApplRole, в которой сказано:
"
Для переприсвоения текущих паролей ролей необходимо запустить скрипт на X-языке, содержащий совокупность операторов «xApplRole PWD, <name_app_role>;» для каждой роли. Скрипт должен запускать пользователь, входящий в роль db_owner для БД.

Результат выполнения.

Активизируется или создается роль приложения. В отличие от аналогичных серверных процедур, при использовании оператора «xApplRole» пароль в явном виде не указывается, что несомненно более предпочтительно с точки зрения безопасности системы.
"
Это значит не обязательно знать текущие пароли роли приложений, ведь их можно заменить на собсвенные, а затем используя подмену инструкций, описанную выше, изменять контекст безопасности пользователя в ходе одного сеанса?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Фев 05, 2016 16:23    Заголовок сообщения: Ответить с цитатой

Я тоже хотел бы знать пароль, так как создаю новую базу для интеграции и что бы пользователи имели доступ к таблицам новой БД, мне необходимо создать роль приложения. Вопрос, с каким паролем создать роль приложения в новой бд?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mikhail



Зарегистрирован: 16.08.2012
Сообщения: 177
Откуда: Москва

СообщениеДобавлено: Пт Фев 05, 2016 16:42    Заголовок сообщения: Ответить с цитатой

Уточнение к вышесказанному: посмотрел как работает инструкция:
Код:

XApplRole PWD,role_code_[''];

и разочаровался - установить с её помощью известный мне пароль не удастся.

Присоединяюсь к просьбе поделиться информацией относительно хранения паролей ролей приложений.

Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Фев 05, 2016 16:47    Заголовок сообщения: Ответить с цитатой

Вопрос снимается, мне достаточно:

Код:
use MYDB
XApplRole Create, 'HR2_ADM';
return SQL_CODE;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU