Condividi tramite


Esempio di rappresentazione

Data aggiornamento: 5 dicembre 2005

L'esempio di rappresentazione illustra come utilizzare la rappresentazione per accedere alle risorse protette del sistema operativo, ad esempio file, mediante le credenziali passate dal client quando si utilizza la protezione integrata. Per impostazione predefinita, quando si accede a questo tipo di risorse vengono utilizzate le credenziali dell'account in cui è eseguito SQL Server.

[!NOTA] Questa forma di rappresentazione non ha effetti sull'accesso alle risorse protette di SQL Server, ad esempio le tabelle, a meno che non si esegua l'accesso ai dati a un server di database diverso (SQL Server o un altro tipo di server di database) tramite ADO.NET. In tal caso, è necessario utilizzare la rappresentazione durante l'esecuzione del metodo Open sulla connessione per passare le credenziali del client al server remoto. Non è necessario utilizzare la rappresentazione durante altre chiamate ADO.NET.

Questo esempio illustra inoltre come accedere alle informazioni relative ai file inclusi in una directory mediante una funzione CLR (Common Language Runtime) valutata a livello di tabella.

Directory di installazione: drive:\Programmi\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Impersonation\.

Scenario

Jane è una sviluppatrice di Adventure Works Cycles e desidera accedere alle informazioni relative ai file inclusi in una directory sul server utilizzando le credenziali passate dal client.

Linguaggi

Transact-SQL, Visual C# e Visual Basic.

Funzionalità

L'esempio Impersonation utilizza le funzionalità seguenti di SQL Server.

Area di applicazione Funzionalità

Generale

CLR, protezione

Prerequisiti

Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:

  • Microsoft SQL Server 2005 o Microsoft SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express è disponibile gratuitamente nel sito Web relativo a documentazione ed esempi di SQL Server 2005 Express Edition.
  • Il database AdventureWorks, incluso in SQL Server 2005 e disponibile nel sito Web per gli sviluppatori di SQL Server.
  • Gli esempi di Motore di database di SQL Server 2005, inclusi in SQL Server 2005. È possibile scaricare la versione più recente degli esempi dal sito Web per gli sviluppatori di SQL Server.
  • .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Vedere Installazione di .NET Framework SDK.

Generazione dell'esempio

Se ancora non è stato creato il file di chiave con nome sicuro ExternalSampleKey.snk, generarlo seguendo le istruzioni riportate di seguito.

Per generare un file di chiave con nome sicuro

  1. Aprire il prompt dei comandi Microsoft Visual Studio 2005. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft Visual Studio 2005, Visual Studio Tools e quindi Prompt dei comandi di Visual Studio 2005.

    —O—

    Aprire il prompt dei comandi Microsoft .NET Framework. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0 e quindi Prompt dei comandi SDK.

  2. Al prompt dei comandi mediante il comando CD (change directory) passare dalla directory corrente della finestra del prompt dei comandi alla cartella Samples.

    [!NOTA] Per determinare la cartella in cui si trovano gli esempi, fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, Documentazione ed esercitazioni e quindi Directory esempi. Se è stato utilizzato il percorso di installazione predefinito, gli esempi si troveranno in <system_drive>:\Programmi\Microsoft SQL Server\90\Samples.

  3. Al prompt dei comandi digitare il comando seguente per generare il file di chiave:

    sn -k ExternalSampleKey.snk

    ms160785.note(it-it,SQL.90).gifImportante:
    Per ulteriori informazioni sulla coppia di chiavi con nome sicuro, vedere l'argomento relativo ai nomi sicuri e alla protezione in .NET Framework nel centro per sviluppatori di .NET su MSDN (informazioni in lingua inglese).

Per generare l'esempio Impersonation

  1. Compilare l'esempio tramite Visual Studio 2005 e la soluzione Visual Studio fornita oppure tramite Microsoft MSBuild, incluso in .NET Framework SDK 2.0. Al prompt dei comandi eseguire un comando simile al seguente:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ Impersonation.sln

  2. Verificare che il database AdventureWorks sia installato.

  3. Se gli esempi del motore di SQL Server non sono stati installati nel percorso predefinito, modificare il percorso nella parte CREATE ASSEMBLY dello script in Scripts\InstallCS.sql e Scripts\InstallVB.sql per fare riferimento al percorso in cui sono stati installati gli esempi.

  4. Se non si è amministratore dell'istanza di SQL Server in uso, è necessario ottenere l'autorizzazione CreateAssembly dall'amministratore per completare l'installazione.

  5. Aprire il file scripts\installCS.sql o scripts\installVB.sql, a seconda che sia stata eseguita la compilazione del progetto Visual C# o del progetto Visual Basic in Microsoft SQL Server Management Studio. Eseguire lo script contenuto nel file oppure al prompt dei comandi eseguire un comando simile al seguente:

    sqlcmd -E -I -i Scripts\InstallCS.sql

Esecuzione dell'esempio

Per eseguire l'esempio Impersonation

  1. Nella cartella Documenti creare la cartella Test.

  2. Con il Blocco note creare un file di testo vuoto in tale cartella.

  3. Impostare la protezione della cartella nella finestra di dialogo Proprietà in Esplora risorse.

    1. Nella scheda Protezione fare clic su Avanzate per disattivare la propagazione delle impostazioni di protezione ereditabili dall'oggetto padre.
    2. Utilizzare Copia per copiare le impostazioni di protezione dell'oggetto padre.
    3. Aggiungere sé stessi come utente con autorizzazioni complete per la cartella.
    4. Rimuovere tutti gli altri utenti.
  4. Aprire il file scripts\test.sql in Management Studio o nel Blocco note. Modificarlo in modo che, anziché chiamare il metodo GetEnvironmentVariable nell'istruzione SELECT @TestDir, venga specificata una stringa costante per il valore della variabile @TestDir. Il codice avrà un aspetto analogo al seguente:

    SELECT @TestDir = 'C:\Documents and Settings\username\My Documents\Test\'

    Sostituire username con il nome utente effettivo.

Eseguire lo script in Management Studio o salvare il file modificato nel Blocco note e quindi eseguire il comando seguente al prompt dei comandi:

sqlcmd -E -I -i Scripts\test.sql

Rimozione dell'esempio

Per rimuovere l'esempio Impersonation

  1. Aprire il file scripts\cleanup.sql in Management Studio. Eseguire lo script contenuto nel file oppure al prompt dei comandi eseguire il comando seguente:

    sqlcmd -E -I -i Scripts\cleanup.sql

Commenti

Per il corretto funzionamento di questo esempio, è necessario abilitare CLR per SQL Server 2005 o SQL Server Express.

Gli esempi vengono forniti esclusivamente a scopo didattico. Non sono destinati all'utilizzo in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non rende disponibile il supporto tecnico per questi esempi. Le applicazioni e gli assembly di esempio non devono essere connessi o utilizzati con il database di SQL Server o il server di report in un ambiente di produzione senza l'autorizzazione dell'amministratore di sistema.

Vedere anche

Altre risorse

The SqlContext Object

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato:
  • Modifica delle istruzioni per la generazione di un file di chiave, inclusi il nome e il percorso del file di chiave.