we hebben verschillende databaseobjecten zoals weergave, opgeslagen procedures, triggers, functies en indexen in een relationele database. Vaak willen we definities voor deze objecten bekijken. We kunnen SSMS graphical way of t-SQL gebruiken om scripts te genereren.
bijvoorbeeld, we willen de definitie van een SQL-weergave bekijken .. Laten we beide manieren verkennen om scripts te genereren.,
verschillende methoden om de definitie van objecten te bekijken
SSMS Script Wizard:
vouw de database uit en ga naar weergaven. Klik met de rechtermuisknop op een bepaalde weergave waarvoor we script willen genereren en klik op Script View as ->Create To.
We kunnen het script op de volgende manieren krijgen.
- in het nieuwe query venster
- haal het script in de .,SQL-bestand
- kopieer het script op het klembord
- script ophalen in een SQL-agenttaak
Scriptwizard genereren:
We kunnen ook Scriptwizard genereren in SSM ‘ s gebruiken om script te genereren. Klik met de rechtermuisknop op een database en ga naar Taken -> scripts genereren.
in de scriptwizard genereren, selecteert u het specifieke databaseobject en klikt u op Volgende.
u kunt de wizard voltooien om het script te krijgen.,
met behulp van t-SQL:
We kunnen ook T-SQL queries gebruiken om het script van de objecten te krijgen. U kunt de volgende T-SQL methoden gebruiken om definities voor een object te krijgen.
- scripts ophalen met behulp van de Information_Schama.,Uitzicht:
Uitvoeren de volgende query in de database en geef de naam van het object in de where-component
1234SELECTEER TABLE_NAME als Viewnaam,VIEW_DEFINITION als ViewDefinitionVAN 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 functie
We kunnen ook een object_definition functie gebruiken om een script voor het object te genereren. In de volgende query we maken gebruik van de object_definition functie voor een weergave vEmployee in de AdventureWorks2017 database
1SELECTEER object_definition (OBJECT_ID(N’.,’))permissies vereist om objecten te genereren script
Het is een essentieel aspect voor elke DBA om de gebruikersrechten voor toegang tot de objecten te beheren. Vaak hebben gebruikers aanvullende rechten op een database nodig om hun taak uit te voeren. Gebruikers met een openbare functie hebben standaard geen machtigingen om de definitie van een object te bekijken. Het is handig voor de ontwikkelaars om de objectdefinities te krijgen zodat ze dit in een niet-productieomgeving kunnen uitvoeren., We willen ook geen geprivilegieerde rechten geven aan gebruikers, vooral niet in de productieomgeving.
laten we een nieuwe database-Gebruiker maken en een publieke rol in de AdventureWorks2014-database leveren.
maak verbinding met SQL Server met behulp van de aanmeldingsreferenties met publieke rolrechten.
Voer de query uit om de beelddefinitie van een object te verkrijgen. Het commando sp_helptext geeft een foutmelding dat een object niet bestaat in de database.,
als we proberen het script te krijgen met behulp van INFORMATION_SCHEMA.Weergaven, geeft het geen foutmelding; Het retourneert echter geen rij.
u kunt het SSMS ook niet gebruiken omdat het de objecten niet toont voor de publieke roltoegang.
We kunnen toestemming voor beelddefinitie gebruiken in SQL Server om gebruikers toe te staan de objectdefinities te bekijken. We kunnen deze toegang bieden aan een publieke rol of aan een individuele gebruiker.,
- als we weergaveobjectdefinitie rechten willen geven aan alle gebruikers met een openbare rol, voer dan de volgende query uit.,v>
123USE AdventureWorks2017GOGRANT VIEW ANY DEFINITION TO Rajendra
- object_definition functie
- 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 ‘.,’
|
u kunt andere methoden proberen om objectdefinities te bekijken die in de vorige sectie zijn gespecificeerd. U kunt verbinding in SSM ‘ s ook Vernieuwen om alle objecten te bekijken na het toewijzen van de machtigingen voor Weergavedefinitie.
We kunnen de rechten bijhouden met het commando sp_helprotect.,
- In de screenshot hieronder kunt u zich aan de volgende:
- Object: vEmployee
- Eigenaar( Schema) : HumanResources
- Rechtverkrijgende ( Gebruiker): Rajendra
- Concessieverlener ( toestemming Concessieverlener): dbo
- Toestemming: Subsidie
- Actie( rechten): Bekijk de Definitie
Intrekken Bekijk de Definities toestemming
We hebben geleerd te Verlenen van het Uitzicht definitie machtigingen voor een gebruiker, rol of object in SQL Server in de vorige paragraaf., Het is ook een belangrijk aspect om te weten hoe u deze weergavedefinities machtigingen kunt intrekken. Vaak willen we een gebruiker tijdelijk toegang geven en deze later intrekken. We kunnen de machtigingen voor de gebruiker in alle databases intrekken met de opdracht Revocate View Any Definition.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., Aan Rajendra
|
conclusie
in dit artikel hebben we de permissies van beelddefinitie toestaan en intrekken in SQL Server onderzocht om definities voor een object te bekijken. Het biedt u de nodige informatie om de machtigingen voor objectdefinities te beheren. Als u opmerkingen of vragen, voel je vrij om ze te verlaten in de reacties hieronder.,
- Auteur
- Laatste Berichten
hij is de maker van een van de grootste gratis online collecties van artikelen over een enkel onderwerp, met zijn 50-delige serie op SQL Server Always On Availability Groups. Op basis van zijn bijdrage aan de SQL Server community, werd hij in 2020 en 2021 bij SQLShack onderscheiden met verschillende prijzen, waaronder de prestigieuze “beste auteur van het jaar”.,Raj is altijd geïnteresseerd in nieuwe uitdagingen, dus als je advies nodig hebt over een onderwerp dat in zijn geschriften wordt behandeld, kan hij worden bereikt in rajendra.gupta16@gmail.,com
Bekijk alle berichten van Rajendra Gupta
- Sessie time-outs in SQL Server Altijd Over de Beschikbaarheid van deze Groepen – 8 februari 2021
- Uitvoeren van kleine en grote versie-upgrades voor AWS RDS-SQL Server – 29 januari 2021
- het Implementeren van AWS RDS-PostgreSQL gevallen, 27 januari 2021
Leave a Reply