Vi har forskellige databaseobjekter som f.eks vist, stored procedures, triggers, funktioner og indekser i en relationel database. Mange gange ønsker vi at se definitioner for disse objekter. Vi kan bruge enten SSMS grafisk måde eller t-s .l til at generere scripts.
for eksempel ønsker vi at se definitionen af en s .l-visning .. Lad os undersøge begge måder at generere scripts på.,
forskellige metoder til at se definitionen af objekter
SSMS Script Wizardi .ard:
Udvid databasen og gå til Visninger. Højreklik på en bestemt visning, som vi vil generere script til, og klik på Script vie.as ->opret til.
Vi kan få scriptet på følgende måder.
- i det nye forespørgselsvindue
- Hent scriptet i .,S .l-fil
- Kopier scriptet i udklipsholderen
- Hent script i et s .l-Agent-job
Generer Script Wizardi .ard:
Vi kan også bruge guiden Generer Script i SSMS til at generere script. Højreklik på en database og gå til opgaver -> Generer Scripts.
i guiden generer script skal du vælge det specifikke databaseobjekt og klikke på Næste.
Du kan fuldføre guiden for at få scriptet.,
brug af t-s .l:
Vi kan også bruge T-s .l-forespørgsler til at få scriptet til objekterne. Du kan bruge følgende t-s .l metoder til at få definitioner for et objekt.
- Hent scripts ved hjælp af Information_Schama.,Udsigt:
Udfør følgende forespørgsel i source database og angive objektets navn i where
1234VÆLG TABLE_NAME som ViewName,VIEW_DEFINITION som ViewDefinitionFRA 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 funktion
Vi kan bruge en object_definition funktion, samt at generere et script for objektet. I den følgende forespørgsel, vi bruger object_definition funktion for en udsigt vEmployee i AdventureWorks2017 database
1VÆLG object_definition (OBJECT_ID(N’.,’))
Tilladelser, der er nødvendige for at generere objekter script
Det er et vigtigt aspekt for enhver DBA til at kontrollere brugerens tilladelser til at få adgang til objekter. Mange gange kræver brugere yderligere rettigheder i en database for at udføre deres pligt. Som standard har brugere med offentlig rolle ikke tilladelser til at se definitionen af et objekt. Det er nyttigt for udviklerne at få objektdefinitionerne, så de kan udføre dette i et ikke-produktionsmiljø., Vi ønsker heller ikke at give privilegerede tilladelser til brugerne, især i produktionsmiljøet.
lad os oprette en ny databasebruger og give en offentlig rolle i Adventure .orks2014-databasen.
Opret forbindelse til S .l Server ved hjælp af loginoplysningerne, der har tilladelse til offentlig rolle.
Udfør forespørgslen for at få visningsdefinitionen af et objekt. Kommandoen sp_helpte .t giver en fejlmeddelelse om, at et objekt ikke findes i databasen.,
Hvis vi forsøger at få scriptet ved hjælp INFORMATION_SCHEMA.Visninger, det giver ingen fejlmeddelelse; det returnerer dog ikke nogen række.
Du kan ikke bruge SSMS så godt, fordi det ikke viser objekterne for den offentlige rolle adgang.
Vi kan bruge Visningsdefinitionstilladelse i s .l Server for at give brugerne mulighed for at se objektdefinitionerne. Vi kan enten give denne adgang til en offentlig rolle eller en individuel bruger.,
- hvis vi ønsker at give visningsobjektdefinitionsrettigheder til alle brugere med offentlig rolle, skal du udføre følgende forespørgsel.,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 ‘.,’
|
Du kan prøve andre metoder til at se objektdefinitioner, der er angivet i det foregående afsnit. Du kan også opdatere forbindelsen i SSMS for at se alle objekter efter tildeling af tilladelser til Visningsdefinitionen.
Vi kan holde styr på tilladelserne ved hjælp af kommandoen sp_helprotect.,
- I det nedenstående screenshot, kan du iagttage følgende:
- Objekt: vEmployee
- Ejeren( Skema) : HumanResources
- Adgangsberettigede ( Brugeren): Rajendra
- Kreditgiver ( tilladelse Kreditgiver): dbo
- Tilladelse: Grant
- Handling( rettigheder): Se Definition
Tilbagekalde Se Definitioner tilladelse
Vi lærte at Give den Opfattelse definition tilladelser til en bruger, rolle eller objekt i SQL-Serveren i det foregående afsnit., Det er også et vigtigt aspekt at vide, hvordan man tilbagekalder disse Visningsdefinitioner tilladelser. Mange gange vil vi måske give midlertidig adgang til en bruger og tilbagekalde den senere. Vi kan tilbagekalde tilladelserne til brugeren på tværs af alle databaser med tilbagekald se enhver Definition kommando.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., TIL Rajendra
|
Konklusion
I denne artikel, vi har udforsket, Tildele og Tilbagekalde se definition tilladelser på SQL Server, for at se definitioner for et objekt. Det giver dig de nødvendige oplysninger til at styre tilladelserne til objektdefinitioner. Hvis du har kommentarer eller spørgsmål, er du velkommen til at forlade dem i kommentarerne nedenfor.,
- Forfatter
- Seneste Indlæg
Han er skaberen af en af de største gratis online samlinger af artikler om et enkelt emne, med hans 50-del serie om SQL Server Altid På Tilgængelighed Grupper. Baseret på hans bidrag til S .l Server-samfundet er han blevet anerkendt med forskellige priser, herunder den prestigefyldte “årets bedste forfatter” kontinuerligt i 2020 og 2021 på s .lshack.,
Raj er altid interesseret i nye udfordringer, så hvis du har brug for rådgivning om ethvert emne, der er dækket i hans skrifter, kan han kontaktes på rajendra.gupta16@Gmail.,com
Vis alle indlæg af Rajendra Gupta
- Session timeout i SQL Server Altid På Tilgængelighed Grupper – februar 8, 2021
- Udfører mindre og større version opgraderinger til AWS RDS SQL Server – 29 januar 2021
- Implementering AWS RDS-PostgreSQL tilfælde – januar 27, 2021
Leave a Reply