INF: Kontrola příčně databáze řetězce vlastnictví objektu přepínač přihlášení, je mapovaných vlastníci objektu

Překlady článku Překlady článku
ID článku: 272424 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

SQL Server Books Online je uvedeno pro uložené procedury a zobrazení křížový databází zaškrtnuto políčko řetězce vlastnictví. Můžete zobrazit to snadno při vlastníka závislých objektů v každé databázi mapuje stejné přihlášení. Však Pokud mají uživatelé v obou databázích, které mají stejné uživatelské jméno, ale nejsou namapován na stejné přihlášení (jako často dojde u vlastníka databáze [DBO]), mohou zdát, že řetězce vlastnictví jsou nesprávně kontrolovaného. Například pokud stejné přihlášení je namapován DBO každé databáze a vlastník objekty v databázích je DBO, oprávnění nejsou kontrolovány. Pokud DBO každé databáze je namapován jiný přihlášení, jsou však kontrolovány řetězce vlastnictví. Pokud uživatelská jména se liší od přihlašovacích jmen k tomu může dojít s uživatelé než DBO.

Další informace

Uživatel v databázi uděleno oprávnění k zobrazení nebo uloženou proceduru. Pokud dané zobrazení nebo uloženou proceduru přistupuje k objektů v jiné databázi, který je vlastněn uživatel namapován jiný přihlášení, oprávnění podkladové objekty jsou kontrolovány. Pokud uživatel nemá oprávnění k objektům v jiné databázi, je vrácena následující chyba:
Chyba 229: % ls oprávnění odepřen objekt ' %. * ls ', databáze' %. * ls', vlastníka ' %. * ls'.
Pokud podkladové mapované přihlášení objekty v dotazu je stejný, však nejsou kontrolovány oprávnění a i v případě, že uživatel nemá oprávnění podkladových tabulek spustí dotaz bez výše uvedené chyby.

Viz příklad tohoto, postupujte takto:
  1. Nastavit reprodukci prostředí pomocí dvou různých databázích; db1 je databáze "Base" s daty a db2 obsahuje zobrazení, které vybere z tabulky db1.
    USE master
    GO
    CREATE DATABASE db1
    CREATE DATABASE db2
    EXEC sp_addlogin Owner1
    EXEC sp_addlogin Owner2
    EXEC sp_addlogin TestUser
    GO
    -- setup database #1, DBO is Owner1
    USE db1
    EXEC sp_changedbowner Owner1
    EXEC sp_adduser TestUser
    CREATE TABLE BaseTable (TableColumn CHAR(20))
    INSERT BaseTable VALUES ('Select Succeeded')
    GO
    -- setup database #2
    USE db2
    EXEC sp_adduser TestUser
    GO
    CREATE VIEW      CrossDatabaseView           AS SELECT * FROM db1.dbo.BaseTable
    GO
    GRANT SELECT  ON CrossDatabaseView           TO public
    GO
    					
  2. Spustit následující kód zobrazit různé výsledky založené na tom, zda je DBO stejné nebo odlišné:
    SET NOCOUNT ON
    GO
    PRINT '***** results with both DBOs the same *****'
    PRINT ''
    USE db2
    EXEC sp_changedbowner Owner1
    SETUSER 'TestUser'
    GO
    SELECT * FROM CrossDatabaseView
    GO
    SETUSER
    GO
    
    PRINT ''
    PRINT '***** results with each DBO different *****'
    PRINT ''
    USE db2
    EXEC sp_changedbowner Owner2
    SETUSER 'TestUser'
    GO
    SELECT * FROM CrossDatabaseView
    GO
    SETUSER
    GO
    					
  3. Vyčištění databáze a přihlášení vytvořen pro tento příklad:
    USE master
    GO
    DROP DATABASE db1
    DROP DATABASE db2
    EXEC sp_droplogin Owner1
    EXEC sp_droplogin Owner2
    EXEC sp_droplogin TestUser
    GO
    					

Vlastnosti

ID článku: 272424 - Poslední aktualizace: 5. února 2004 - Revize: 4.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbmt kbinfo kbpending KB272424 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:272424

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com