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

use master
go
create database truth1
create database truth2
go
create login login1 with password='ABC123456'
create login login2 with password='ABC123456'
go
alter authorization on database::truth1 to login1;
alter authorization on database::truth2 to login2;
go
use truth2
create table t2(id int)
go
alter database Truth2 set db_chaining on;
alter database Truth1 set db_chaining on;
go
use truth1
go
execute as login='login1'
select * from truth2.dbo.t2
-- Msg 916, Level 14, State 1, Line 21
-- The server principal "login1" is not able to access the database 
-- "truth2" under the current security context.
go
revert
go
use master
go
drop database truth1
drop database truth2
go
drop login login1
drop login login2
go
5 мар 17, 18:08    [20264790]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
DBO обеих баз должен быть ОДИН И ТОТ ЖЕ логин.
5 мар 17, 18:35    [20264837]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
И включить цепочки владения на уровне сервера надо.
5 мар 17, 18:37    [20264844]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
Масон
Guest
aleks2,

При использовании одного логина заработало, спасибо!
5 мар 17, 20:39    [20265003]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
Масон
aleks2,

При использовании одного логина заработало, спасибо!

А в чем смысл всего этого, простите?
Какой же тут перекрестный доступ-то?
Логин сделали владельцем обеих баз,
еще бы он не мог опросить что угодно в своей базе,
находясь в другой *своей же* базе.
Тут и никакого чейнинга не надо,
он из любой базы, в которую имеет доступ,
опросит любое содержимое тех баз, где он овнер
----
Чейнинг надо, когда во второй базе юзер не имеет ничего, кроме коннекта, никаких вообще прав.
Тогда, создав в первой базе вью, смотрящее на таблицу во второй базе, юзер получит данные из таблицы второй базы, не имея на нее явных прав.
А когда ты овнер, в чем проблемы-то?
5 мар 17, 21:58    [20265159]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
aleks2
И включить цепочки владения на уровне сервера надо.
А ты хоть знаешь, что в результате получится?
5 мар 17, 22:23    [20265237]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
invm
aleks2
И включить цепочки владения на уровне сервера надо.
А ты хоть знаешь, что в результате получится?

дак че, все базы зачейнит.
странно, что он еще не посоветовал всем базам тот логин овнером заделать
для полноты картины
5 мар 17, 22:39    [20265285]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
Масон
Guest
o-o,

Спасибо за объяснение, поспешил я радоваться. Как я понял одно из условий - одинаковое имя пользователя для логина в обоих базах.
5 мар 17, 22:49    [20265328]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
вот-вот.
это называется, логин должен быть отмаплен во вторую базу.
теперь, имея зачейненные базы (две интересующие вас базы, а не абсолютно все на сервере,
как тут присоветовали),
модули первой базы могут обращаться к объектам второй базы,
а исполнителю модуля достаточно прав на модуль первой базы.
при этом владельцы всех объектов(модуля и объектов, к к-ым идет обращение) должны совпадать
(не владельцы баз!!!!)
+ не должно быть динамики в модуле(она разрывает цепочку владения)
5 мар 17, 22:57    [20265361]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
o-o
при этом владельцы всех объектов(модуля и объектов, к к-ым идет обращение) должны совпадать
(не владельцы баз!!!!)

в смысле, владельцы баз должны быть одинаковы,
но не обязаны совпадать с тем, кому надо попадать в базы.
Масон
одинаковое имя пользователя для логина в обоих базах.

все же точнее говорить, "логин должен быть отмаплен",
либо "должен иметь connect на базу"
а имя как раз может быть другое, если юзер скульный.
т.е. можно в первой базе иметь
create user aleks1 from login aleks2
во второй
create user aleks3 from login aleks2
имена не совпадают, но это ничему не мешат, главное, у логина есть доступ в базы
5 мар 17, 23:43    [20265429]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
Масон
Guest
o-o,

Кстати если владелец вьюшки из одной из баз совпадает с владельцем таблицы на другой базе (один и тот же логин), но при этом они не являются владельцами баз и владельца баз отличаются, то дополнительно настраивать взаимодействие не нужно.
6 мар 17, 00:33    [20265477]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
msLex
Member

Откуда:
Сообщений: 9287
o-o
o-o
при этом владельцы всех объектов(модуля и объектов, к к-ым идет обращение) должны совпадать
(не владельцы баз!!!!)

в смысле, владельцы баз должны быть одинаковы,
но не обязаны совпадать с тем, кому надо попадать в базы.
Масон
одинаковое имя пользователя для логина в обоих базах.

все же точнее говорить, "логин должен быть отмаплен",
либо "должен иметь connect на базу"
а имя как раз может быть другое, если юзер скульный.
т.е. можно в первой базе иметь
create user aleks1 from login aleks2
во второй
create user aleks3 from login aleks2
имена не совпадают, но это ничему не мешат, главное, у логина есть доступ в базы

Стоит добавить, что если к базам разрешен коннект под guest-ом, то пользователю не обязательно иметь доступ ко второй (та, куда получается доступ по цепочки владения) базе, т.к. пользователь "отмапится" в guest-а.
6 мар 17, 00:34    [20265481]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
invm
aleks2
И включить цепочки владения на уровне сервера надо.
А ты хоть знаешь, что в результате получится?


Знаю, дарагуля, знаю.
6 мар 17, 06:13    [20265593]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
aleks2
Знаю, дарагуля, знаю.
Так может поделишься знаниями?
6 мар 17, 10:26    [20265953]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
invm
aleks2
Знаю, дарагуля, знаю.
Так может поделишься знаниями?

не поделится.
некогда ему, барину жаниться пора
6 мар 17, 10:49    [20266055]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
invm
aleks2
Знаю, дарагуля, знаю.
Так может поделишься знаниями?

Ты чо, читать разучился?

При активной "цепочке владения" проверка права доступа к объекту делается только для самого первого объекта цепочки.

Т.е. если юзеру X дадено право на исполнение процедуры dbo.Y, то внутри процедуры все объекты схемы dbo доступны.
Без явного разрешения доступа.
Но если цепочка владения прерывается (внутри dbo.Y выборка из tralala.Z) - осуществляется проверка прав доступа к объекту.

При включении "межбазовых цепочек владения" это распространяется на другие базы с ТЕМ ЖЕ владельцем, что и исходная.

Вроде как "межбазовыми цепочками владения" можно рулить для баз по-отдельности. Если тя это волнует.
6 мар 17, 10:51    [20266067]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
о, да мы тут все учимся читать.
вот если у ТС уже между двумя мазами чейнинг включен,
на сервере-то мы настройку зачем меняем, ткни-ка пальчиком?
наверное, если в третьей, четвертой и всех остальных базах чейнинг не включен,
то обращаясь в базу 2, цепочка разорвется по причине "не зачейнены базы 3,4,5.."?
так надо твой развернутый ответ понимать?
6 мар 17, 11:08    [20266158]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
aleks2
Ты чо, читать разучился?
Это ты у своего отражения в зеркале спросил?
Прочти внимательно (только прочти, а не в астрале ищи ответ) к чему приводит включение опции конфигурации сервера cross db ownership chaining и подумай над адекватностью своего совета.
6 мар 17, 11:26    [20266227]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
invm
aleks2
Ты чо, читать разучился?
Это ты у своего отражения в зеркале спросил?
Прочти внимательно (только прочти, а не в астрале ищи ответ) к чему приводит включение опции конфигурации сервера cross db ownership chaining и подумай над адекватностью своего совета.

Ну-ну... надувание щек?

Да ни к чему не приведет.
Не ссы.
6 мар 17, 14:32    [20267045]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
aleks2
Guest
o-o
о, да мы тут все учимся читать.
вот если у ТС уже между двумя мазами чейнинг включен,
на сервере-то мы настройку зачем меняем, ткни-ка пальчиком?
наверное, если в третьей, четвертой и всех остальных базах чейнинг не включен,
то обращаясь в базу 2, цепочка разорвется по причине "не зачейнены базы 3,4,5.."?
так надо твой развернутый ответ понимать?

Бредишь опять?
6 мар 17, 14:37    [20267074]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Модератор: Уважаемые участники, хорош кидаться друг в друга какашками, ведите себя прилично, а то санкции введу. Спасибо за понимание.
6 мар 17, 14:40    [20267094]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
aleks2
Да ни к чему не приведет.
Круть. А зачем нужна опция, включение которой ни к чему не приводит?
6 мар 17, 14:52    [20267168]     Ответить | Цитировать Сообщить модератору
 Re: Настройка перекрестного доступа между базами  [new]
o-o
Guest
а, ну продолжайте чейнить пару баз включением серверной опции
и, что самое главное, советовать это со страниц форума sql.ru.
я вообще-то типа за репутацию форума беспокоюсь,
но раз нынче в моде нести фигню в рупор, флаг в руки модератора
+
(кто бы кидался.
ему лишь предложили жениться, разве не то надо желать ближнему своему, чего он сам всем активно желает?)
6 мар 17, 14:58    [20267202]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить