INF: Проверка по базам данных цепочки владения объекта зависит от имени входа, сопоставленного владельцы объектов

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 272424
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Аннотация
Электронная документация по SQL Server указывается проверку цепочки владения для хранимых процедур и представлений, которые пересекают баз данных. Вы видите это легко при сопоставляет имя пользователя владельца зависимых объектов в каждой базе данных. Тем не менее, если у вас есть пользователи в обеих базах данных, которые имеют одинаковое имя пользователя, но не сопоставляется имя пользователя (как часто происходит с владельцем базы данных [DBO]), он может показаться, что неправильно проверки цепочки владения. Например если то же имя входа сопоставлено DBO каждой базы данных и владельца объектов в базах данных является DBO, разрешения не проверяются. Тем не менее если другое имя входа сопоставляется DBO каждой базы данных, проверяются цепочки владения. Это может произойти с пользователями, отличный от DBO, если имена пользователей, отличаются от имен входа.
Дополнительная информация
Пользователь базы данных могут быть предоставлены разрешения на представление или хранимая процедура. Если это представление или хранимая процедура обращается к объектам в другой базе данных, которой принадлежит пользователь, сопоставленный другого имени входа, проверяются разрешения базовых объектов. Если у пользователя нет разрешения на объекты в другой базе данных, возвращается следующее сообщение об ошибке:
Ошибка 229: разрешение % ls запрещено для объекта "%. * ls, базы данных" %. * ls', владельца "%. * ls.
Если базовый сопоставленному имени входа объектов в запросе уже существует, разрешения не проверяются, а запрос выполняется без ошибки выше даже в том случае, если пользователь не имеет разрешений на базовые таблицы.

Для просмотра примера, выполните следующие действия.
  1. Настройка среды воспроизведение с двумя разными базами данных; DB1 является база данных «Базовый» с данными и db2 содержит представление, которое выбирает из таблицы в db1.
    USE masterGOCREATE DATABASE db1CREATE DATABASE db2EXEC sp_addlogin Owner1EXEC sp_addlogin Owner2EXEC sp_addlogin TestUserGO-- setup database #1, DBO is Owner1USE db1EXEC sp_changedbowner Owner1EXEC sp_adduser TestUserCREATE TABLE BaseTable (TableColumn CHAR(20))INSERT BaseTable VALUES ('Select Succeeded')GO-- setup database #2USE db2EXEC sp_adduser TestUserGOCREATE VIEW      CrossDatabaseView           AS SELECT * FROM db1.dbo.BaseTableGOGRANT SELECT  ON CrossDatabaseView           TO publicGO					
  2. Выполните следующий код, чтобы увидеть различные результаты в зависимости от DBO является ли же или другой:
    SET NOCOUNT ONGOPRINT '***** results with both DBOs the same *****'PRINT ''USE db2EXEC sp_changedbowner Owner1SETUSER 'TestUser'GOSELECT * FROM CrossDatabaseViewGOSETUSERGOPRINT ''PRINT '***** results with each DBO different *****'PRINT ''USE db2EXEC sp_changedbowner Owner2SETUSER 'TestUser'GOSELECT * FROM CrossDatabaseViewGOSETUSERGO					
  3. Очистка базы данных и имена входа, созданные для этого примера:
    USE masterGODROP DATABASE db1DROP DATABASE db2EXEC sp_droplogin Owner1EXEC sp_droplogin Owner2EXEC sp_droplogin TestUserGO					
междоменной безопасности BOL через между владения DBO

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 272424 — последний просмотр: 01/16/2015 20:42:11 — редакция: 5.0

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbinfo kbpending kbmt KB272424 KbMtru
Отзывы и предложения