INF: catena di proprietÓ oggetto controllo in un database dall'account di accesso Ŕ mappato per i rischi di oggetto

Traduzione articoli Traduzione articoli
Identificativo articolo: 272424 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

Documentazione in linea di SQL Server per segnalare che le catene di proprietÓ vengono controllate per stored procedure e le visualizzazioni che si intersecano i database. ╚ possibile notarlo facilmente quando il proprietario di oggetti dipendenti di ogni database esegue il mapping account di accesso stesso. Tuttavia, se sono presenti utenti in entrambi i database che hanno lo stesso nome utente, ma non sono assegnati all'account di accesso stesso (come spesso accade con il proprietario del database [DBO]), pu˛ sembrare che le catene di proprietÓ vengono controllate in modo non corretto. Ad esempio, se il proprietario del database di ogni database viene effettuato il mapping stesso accesso e il proprietario degli oggetti nel database Ŕ il proprietario del database, autorizzazioni non vengono controllati. Tuttavia, se il proprietario del database di ogni database Ŕ mappata a un diverso account di accesso, vengono controllate le catene di proprietÓ. Ci˛ pu˛ verificarsi con altri utenti oltre il proprietario del database se i nomi utente sono diversi dai nomi di account di accesso.

Informazioni

Un utente in un database pu˛ essere concesse autorizzazioni su una visualizzazione o stored procedure. Se tale vista o stored procedure accede agli oggetti in un altro database che appartiene a un utente mappato su un diverso account di accesso, vengono controllate le autorizzazioni degli oggetti sottostanti. Se l'utente non dispone di autorizzazioni per gli oggetti in altro database, viene restituito il seguente errore:
Errore 229: % 1! autorizzazione negata sull'oggetto ' %. * ls ', database' %. * ls', il proprietario ' %. * ls'.
Tuttavia, se l'accesso mappato sottostante degli oggetti della query Ŕ lo stesso, autorizzazioni non vengono controllati e la query viene eseguita senza l'errore precedente anche se l'utente non dispone di autorizzazioni alle tabelle sottostanti.

Per visualizzare un esempio di questo, attenersi alla seguente procedura:
  1. Impostato di un ambiente di riproduzione con due database diversi; db1 Ŕ il database di "Base" con i dati e di db2 contiene una vista che seleziona dalla tabella 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. Eseguire il codice riportato di seguito per visualizzare i diversi risultati in base a se il proprietario del database Ŕ uguale o diversi:
    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. Pulire i database e account di accesso creato per questo esempio:
    USE master
    GO
    DROP DATABASE db1
    DROP DATABASE db2
    EXEC sp_droplogin Owner1
    EXEC sp_droplogin Owner2
    EXEC sp_droplogin TestUser
    GO
    					

ProprietÓ

Identificativo articolo: 272424 - Ultima modifica: giovedý 5 febbraio 2004 - Revisione: 4.3
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Chiavi:á
kbmt kbinfo kbpending KB272424 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 272424
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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