Abbiamo vari oggetti di database come vista, stored procedure, trigger, funzioni e indici in un database relazionale. Molte volte, vogliamo visualizzare le definizioni per questi oggetti. Possiamo usare sia SSMS modo grafico o t-SQL per generare script.
Ad esempio, vogliamo visualizzare la definizione di una vista SQL .. Esploriamo entrambi i modi per generare script.,
Diversi metodi per visualizzare la definizione di oggetti
SSMS Script Wizard:
Espandere il database e andare a Viste. Fare clic destro su una particolare vista per la quale vogliamo generare script e fare clic su Script View as ->Create To.
Possiamo ottenere lo script nei seguenti modi.
- Nella nuova finestra di query
- Ottenere lo script nel .,File SQL
- Copiare lo script negli appunti
- Ottenere script in un lavoro SQL Agent
Generare Script Wizard:
Possiamo usare Generare Script Wizard in SSMS anche per generare script. Fare clic con il pulsante destro del mouse su un database e andare su Task – > Genera script.
Nella procedura guidata genera script, selezionare l’oggetto database specifico e fare clic su Avanti.
È possibile completare la procedura guidata per ottenere lo script.,
Usando t-SQL:
Possiamo usare anche le query t-SQL per ottenere lo script degli oggetti. È possibile utilizzare i seguenti metodi t-SQL per ottenere definizioni per un oggetto.
- Ottieni script usando Information_Schama.,Vista:
Eseguire la seguente query nel database di origine e specificare il nome dell’oggetto nella clausola where
1234SELEZIONARE TABLE_NAME come ViewName,VIEW_DEFINITION come ViewDefinitionFROM INFORMATION_SCHEMA.,Viewswhere TABLE_NAME=’vEmployee’ - Sp_helptext system procedure:
You can use sp_helptext system procedure as well to get the script. You need to specify the object name along with the schema if it is other than dbo.
1EXEC sp_helptext ‘.,’ - funzione object_definition
utilizzare un object_definition funzione per generare uno script per l’oggetto. Nella query seguente usiamo la funzione object_definition per una vista vEmployee in AdventureWorks2017 database
1SELEZIONARE object_definition (OBJECT_ID(N’.,’))
Autorizzazioni necessarie per generare oggetti script
si tratta di un aspetto essenziale per qualsiasi DBA per controllare le autorizzazioni utente per accedere a oggetti. Molte volte gli utenti richiedono diritti aggiuntivi su un database per svolgere il loro dovere. Per impostazione predefinita, gli utenti con ruolo pubblico non dispongono delle autorizzazioni per visualizzare la definizione di un oggetto. È utile per gli sviluppatori ottenere le definizioni degli oggetti in modo che possano eseguirli in un ambiente non di produzione., Inoltre, non vogliamo concedere autorizzazioni privilegiate agli utenti, specialmente nell’ambiente di produzione.
Creiamo un nuovo utente del database e forniamo un ruolo pubblico nel database AdventureWorks2014.
Connettersi a SQL Server utilizzando le credenziali di accesso con autorizzazione ruolo pubblico.
Esegui la query per ottenere la definizione della vista di un oggetto. Il comando sp_helptext fornisce un messaggio di errore che indica che un oggetto non esiste nel database.,
Se proviamo a ottenere lo script usando INFORMATION_SCHEMA.Non fornisce alcun messaggio di errore; tuttavia, non restituisce alcuna riga.
Non è possibile utilizzare anche SSMS perché non mostra gli oggetti per l’accesso al ruolo pubblico.
Possiamo usare il permesso di definizione vista in SQL Server per consentire agli utenti di visualizzare le definizioni degli oggetti. Possiamo fornire questo accesso a un ruolo pubblico o a un singolo utente.,
- Se vogliamo fornire i diritti di definizione degli oggetti di visualizzazione a tutti gli utenti con ruolo pubblico, eseguire la seguente query.,v>
123USE AdventureWorks2017GOGRANT VIEW ANY DEFINITION TO Rajendra - To grant View Definition rights to a specific user and an object for a particular database
1GRANT VIEW DEFINITION on ., TO Rajendra
Let’s provide access to a specific user (Rajendra) on a specific object ( .) and verify the permissions to view the definition of an object.
1
|
EXEC sp_helptext ‘.,’
|
È possibile provare altri metodi per visualizzare le definizioni degli oggetti specificate nella sezione precedente. È possibile aggiornare la connessione anche in SSMS per visualizzare tutti gli oggetti dopo aver assegnato le autorizzazioni di definizione della vista.
Possiamo tenere traccia delle autorizzazioni usando il comando sp_helprotect.,
- Nella schermata sottostante, è possibile osservare la seguente:
- Oggetto: vEmployee
- Proprietario( Schema) : HumanResources
- Beneficiario ( Utente): Rajendra
- Concedente ( autorizzazione Concedente): dbo
- Autorizzazione: Grant
- Azione( diritti di): Definizione della Vista
Revoca Visualizzare le Definizioni di autorizzazione
Abbiamo imparato a Concedere la definizione della Vista autorizzazioni di un utente, ruolo o di un oggetto in SQL Server nella sezione precedente., È anche un aspetto importante sapere come revocare queste autorizzazioni per le definizioni di visualizzazione. Molte volte, potremmo voler dare accesso temporaneo a un utente e revocarlo in un secondo momento. Possiamo revocare le autorizzazioni all’utente in tutti i database con il comando Revoke View Any Definition.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., PER Rajendra
|
Conclusione
In questo articolo, abbiamo esplorato Concedere e Revocare le autorizzazioni di definizione vista in SQL Server per visualizzare le definizioni di un oggetto. Fornisce le informazioni necessarie per gestire le autorizzazioni per le definizioni degli oggetti. Se avete commenti o domande, sentitevi liberi di lasciarli nei commenti qui sotto.,
- Autore
- Post Recenti
È il creatore di una delle più grandi collezioni online gratuite di articoli su un singolo argomento, con la sua serie di 50 parti su SQL Server Always On Availability Groups. Sulla base del suo contributo alla comunità SQL Server, è stato riconosciuto con vari premi tra cui il prestigioso “Best author of the year” ininterrottamente nel 2020 e 2021 a SQLShack.,
Raj è sempre interessato a nuove sfide, quindi se avete bisogno di consulenza aiuto su qualsiasi argomento trattato nei suoi scritti, egli può essere raggiunto a rajendra.gupta16 @ gmail.,com
Visualizza tutti i messaggi di Rajendra Gupta
- timeout di Sessione in SQL Server Gruppi di Disponibilità alwayson – febbraio 8, 2021
- l’Esecuzione di piccoli e grandi aggiornamenti di versione per AWS RDS SQL Server – 29 gennaio 2021
- la Distribuzione di AWS RDS PostgreSQL istanze – 27 gennaio 2021
Leave a Reply