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

Откуда:
Сообщений: 5297
Добрый день.
Хочется странного.
Есть сборка типа external_access в которой сделано несколько хранимых процедур.
Сделал по инструкции здесь https://msdn.microsoft.com/ru-ru/library/ms345106(v=sql.120).aspx.
Тут без проблем.
Процедура ходит по двум базам. В результате исторической обусловленности и окружения получилось так, что логин под которым запускается процедура не имеет доступа к таблице во второй базе и доступа этому логину в эту таблицу никто не даст.
Соответственно что....
Можно сделать процедуру как EXECUTE AS 'нужный юзер'. Который бы имел доступ к закрытой таблице.
Но тут возникает проблема
автор
The server principal "SomeLogin" is not able to access the database "Database" under the current security context

Конечно SET TRUSTWORTHY ON решает проблему, но это неправильно.

Другой вариант это подписывать методы. Вроде как у нас есть ассиметричный ключ созданный из сборки и по идее им можно подписать. Но не подписывает. Выдает ошибку, что нет private key.
В общем вопрос: как можно подписать наши процедуры нашим ассиметричным ключом и можно ли? Что для этого надо сделать?
29 дек 15, 12:06    [18622305]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
EXECUTE AS OWNER ?
29 дек 15, 12:10    [18622328]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
Winnipuh
EXECUTE AS OWNER ?

Сообщение примерно такое же. Только там логин sa появляется т.к. owner dbo.
29 дек 15, 12:11    [18622338]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
Но тут возникает проблема
Guest
WildMage,

по-моему подписи (clr не подписывал, только t-sql) работают для clr-хранимок и t-sql одинаково, синтаксис один и тот же.
это не в студии, а в sqlserver'е подписывать нужно созданным там сертификатом.
в гугле есть полные сценарии организации такого мапинга через сертификат между базами.
29 дек 15, 22:27    [18625016]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
Но тут возникает проблема
WildMage,

по-моему подписи (clr не подписывал, только t-sql) работают для clr-хранимок и t-sql одинаково, синтаксис один и тот же.
это не в студии, а в sqlserver'е подписывать нужно созданным там сертификатом.
в гугле есть полные сценарии организации такого мапинга через сертификат между базами.

В гуле есть примеры и я их видел. Там используется сертификат. Для этого мне надо создавать ещё и сертификат ко всему тому, что у меня есть. Хотя сама команда позволяет использовать ассиметричные ключи. Так вот хотелось бы заиспользовать тот ключ, которые уже есть. А этого не получается.
30 дек 15, 06:51    [18625825]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
WildMage
Хотя сама команда позволяет использовать ассиметричные ключи. Так вот хотелось бы заиспользовать тот ключ, которые уже есть.
Это возможно только если ключ создавался из внешнего источника и он не утрачен.
30 дек 15, 10:38    [18626386]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
invm
WildMage
Хотя сама команда позволяет использовать ассиметричные ключи. Так вот хотелось бы заиспользовать тот ключ, которые уже есть.
Это возможно только если ключ создавался из внешнего источника и он не утрачен.

Хм. Ключ создавался на основе подписи сборки. Сборка на месте. Надо что-то ещё?
30 дек 15, 12:13    [18626935]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
WildMage
Надо что-то ещё?
Надо для чего?
Так и осталось невыясненным, что вы делаете и что не получается.
30 дек 15, 12:29    [18627021]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
поможет?
30 дек 15, 12:50    [18627187]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
invm
WildMage
Надо что-то ещё?
Надо для чего?
Так и осталось невыясненным, что вы делаете и что не получается.


автор
Другой вариант это подписывать методы. Вроде как у нас есть ассиметричный ключ созданный из сборки и по идее им можно подписать. Но не подписывает.

Я хочу подписать clr процедуру ассиметричным ключом.
30 дек 15, 13:00    [18627257]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
andrey odegov
поможет?

См. первый пост. Уже сделал. Оно прекрасно работает в рамках одной базе.
30 дек 15, 13:01    [18627271]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
Cross-Database Access?
30 дек 15, 13:22    [18627424]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
WildMage
Я хочу подписать clr процедуру ассиметричным ключом.
Приватный ключ нужен, о чем сервер вам уже сообщал.
Либо готовая сигнатура из уже подписанного модуля. А таковой нету.

Можете продолжить битие об стену. А можете реализовать на сертификате или ассиметричном ключе с известным приватным.
30 дек 15, 13:26    [18627461]     Ответить | Цитировать Сообщить модератору
 Re: Подписывание хранимых процедур  [new]
WildMage
Member

Откуда:
Сообщений: 5297
invm
WildMage
Я хочу подписать clr процедуру ассиметричным ключом.
Приватный ключ нужен, о чем сервер вам уже сообщал.
Либо готовая сигнатура из уже подписанного модуля. А таковой нету.

Можете продолжить битие об стену. А можете реализовать на сертификате или ассиметричном ключе с известным приватным.

Мог бы просто ссылкой кинуть. Ладно вопрос закрыт. Ответ был простой.
30 дек 15, 13:48    [18627662]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить