Nous avons divers objets de base de données tels que la vue, les procédures stockées, les déclencheurs, les fonctions et les index dans une base de données relationnelle. Plusieurs fois, nous voulons afficher les définitions de ces objets. Nous pouvons utiliser SSMS graphical way OU T-SQL pour générer des scripts.
Par exemple, nous voulons afficher la définition d’une vue SQL .. Explorons les deux façons de générer des scripts.,
différentes méthodes pour afficher la définition des objets
Assistant de Script SSMS:
développez la base de données et accédez à vues. Faites un clic droit sur une vue particulière pour laquelle nous voulons générer un script et cliquez sur Script View as ->Create To.
Nous pouvons obtenir le script de la manière suivante.
- Dans la nouvelle fenêtre de requête
- Obtenir le script dans le .,Fichier SQL
- copier le script dans le presse-papiers
- obtenir un script dans un travail D’Agent SQL
générer un assistant de Script:
Nous pouvons également utiliser générer un assistant de Script dans SSMS pour générer un script. Faites un clic droit sur une base de données et accédez à Tasks -> générer des Scripts.
Dans la génération de l’assistant de script, sélectionnez l’objet de base de données et cliquez sur Suivant.
Vous pouvez terminer l’assistant pour obtenir le script.,
en utilisant T-SQL:
Nous pouvons également utiliser des requêtes T-SQL pour obtenir le script des objets. Vous pouvez utiliser les méthodes T-SQL suivantes pour obtenir des définitions pour un objet.
- obtenir des scripts en utilisant L’Information_Schama.,Points de vue:
Exécuter la requête suivante dans la base de données source et préciser le nom de l’objet dans la clause where
1234SELECT TABLE_NAME comme Nomvue,VIEW_DEFINITION comme 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 ‘.,’ - object_definition fonction
On peut utiliser un object_definition fonction pour générer un script de l’objet. Dans la requête suivante, nous utilisons le object_definition fonction pour une vue vEmployee dans le AdventureWorks2017 base de données
1SÉLECTIONNEZ object_definition (OBJECT_ID(N’.,’))
les Autorisations nécessaires pour générer des objets de script
C’est un aspect essentiel pour toute DBA pour contrôler les autorisations utilisateur pour accéder à des objets. Plusieurs fois, les utilisateurs ont besoin de droits supplémentaires sur une base de données pour accomplir leur devoir. Par défaut, les utilisateurs ayant un rôle public ne disposent pas des autorisations nécessaires pour afficher la définition d’un objet. Il est utile pour les développeurs d’obtenir les définitions d’objets afin qu’ils puissent l’exécuter dans un environnement hors production., Nous ne voulons pas non plus accorder des autorisations privilégiées aux utilisateurs, en particulier dans l’environnement de production.
créons un nouvel utilisateur de base de données et fournissons un rôle public dans la base de données AdventureWorks2014.
connectez-vous à SQL Server en utilisant les informations d’identification de connexion ayant l’autorisation de rôle Public.
Exécuter la requête pour obtenir la définition de la vue d’un objet. La commande sp_helptext donne un message d’erreur qu’un objet n’existe pas dans la base de données.,
Si nous essayons d’obtenir le script à l’aide de INFORMATION_SCHEMA.Vues, il ne donne aucun message d’erreur; cependant, il ne renvoie aucune ligne.
Vous ne pouvez pas également utiliser le SSMS car il n’affiche pas les objets pour l’accès au rôle public.
Nous pouvons utiliser L’autorisation de définition de vue dans SQL Server pour permettre aux utilisateurs d’afficher les définitions d’objets. Nous pouvons fournir cet accès à un rôle public ou à un utilisateur individuel.,
- Si nous voulons fournir des droits de définition d’objet de vue à tous les utilisateurs ayant un rôle public, exécutez la requête suivante.,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 ‘.,’
|
Vous pouvez essayer d’autres méthodes pour afficher les définitions d’objet spécifié dans la section précédente. Vous pouvez également actualiser la connexion dans SSMS pour afficher tous les objets après avoir attribué les autorisations de définition de vue.
Nous pouvons garder une trace des autorisations en utilisant la commande sp_helprotect.,
- dans la capture d’écran ci-dessous, vous pouvez observer ce qui suit:
- objet: vEmployee
- propriétaire( schéma) : HumanResources
- bénéficiaire ( utilisateur): Rajendra
- concédant ( autorisation concédant): dbo
- autorisation: grant
- action( droits): VIEW DEFINITION
révoquer l’autorisation VIEW definitions
nous avons appris à accorder les autorisations VIEW DEFINITION à un utilisateur, un rôle ou un objet dans SQL Server dans la section précédente., Il est également important de savoir comment révoquer ces autorisations de définitions de vue. Plusieurs fois, nous pourrions vouloir donner un accès temporaire à un utilisateur et le révoquer plus tard. Nous pouvons révoquer les autorisations à l’utilisateur dans toutes les bases de données avec la commande Revoke View Any Definition.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., Pour Rajendra
|
Conclusion
dans cet article, nous avons exploré accorder et révoquer les autorisations de définition de vue dans SQL Server pour afficher les définitions d’un objet. Il vous fournit les informations nécessaires pour gérer les autorisations pour les définitions d’objet. Si vous avez des commentaires ou des questions, n’hésitez pas à les laisser dans les commentaires ci-dessous.,
- auteur
- messages récents
Il est le créateur de l’une des plus grandes collections en ligne gratuites d’articles sur un seul sujet, avec sa série de 50 parties sur SQL Server toujours sur les groupes de disponibilité. Sur la base de sa contribution à la communauté SQL Server, il a été reconnu par divers prix, y compris le prestigieux « meilleur auteur de l’année » en continu en 2020 et 2021 à SQLShack.,
Raj est toujours intéressé par les nouveaux défis, donc si vous avez besoin d’aide de consultation sur un sujet couvert dans ses écrits, il peut être joint à rajendra.gupta16 @ gmail.,com
voir tous les messages de Rajendra Gupta
- délais D’attente de Session dans SQL Server toujours sur les groupes de disponibilité – 8 février 2021
- exécution mineure et mises à niveau de version majeures pour AWS RDS SQL Server – 29 janvier 2021
- déploiement d’instances AWS RDS PostgreSQL – 27 janvier 2021
Leave a Reply