Vi har ulike database objekter, for eksempel visningen lagrede prosedyrer, triggere, tabeller og indekser i en relasjonsdatabase. Mange ganger vi ønsker å vise definisjoner for disse objektene. Vi kan enten bruke SSMS grafisk måte eller t-SQL å generere skript.
For eksempel, ønsker vi å vise definisjonen av en SQL-visning .. La oss utforske både måter å generere skript.,
Forskjellige metoder for å vise definisjonen av objekter
SSMS Script Veiviseren:
Utvide databasen, og gå til Utsikt. Høyre-klikker på et bestemt vis som vi ønsker å generere skript og klikk på Vis Skript som>Opprett Til.
Vi kan få skriptet til, på følgende måter.
- I den nye spørringen vindu
- Få skriptet i den .,SQL-filen
- Kopier scriptet i utklippstavlen
- Få skript i en SQL Agent jobben
Generere Skript Veiviseren:
Vi kan bruke Generere Skript Veiviser i SSMS samt å generere skript. Høyre-klikk på en database og gå til Oppgaver -> Generere Skript.
I den genererer skriptet veiviseren, velg bestemt database objekt, og klikk på Neste.
Du kan fullføre veiviseren for å få skriptet.,
ved Hjelp av t-SQL:
Vi kan bruke t-SQL-spørringer samt å få scriptet til objekter. Du kan bruke følgende t-SQL metoder for å få definisjoner for et objekt.
- Få skript ved hjelp av den Information_Schama.,Visninger:
– Utfør følgende spørring i source database og angi objektet navn i where-betingelsen
1234VELG 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 funksjon
Vi kan bruke en object_definition funksjon samt til å generere et skript for objektet. I det følgende spørring, vi bruker object_definition funksjon for en utsikt vEmployee i AdventureWorks2017 databasen
1VELG object_definition (OBJECT_ID(N’.,’))
Tillatelser som kreves for å generere objekter script
Det er et viktig aspekt for alle DBA å styre brukerens tillatelser til å få tilgang til objekter. Mange ganger brukerne krever ekstra rettigheter på en database for å utføre sin plikt. Som standard, kan brukere med offentlig rolle ikke har tillatelse til å vise definisjonen av et objekt. Det er nyttig for utviklere å få objektet definisjoner, slik at de kan utføre dette i en ikke-produksjonsmiljø., Vi også ønsker ikke å gi privilegert tillatelser til brukere, spesielt i produksjonsmiljøet.
La oss opprette en ny database brukeren og gi en offentlig rolle i AdventureWorks2014 database.
Koble til SQL Server ved hjelp av påloggingsinformasjon å ha Offentlig rolle tillatelse.
Kjøre spørringen for å få se definisjon av et objekt. Kommandoen sp_helptext gir en feilmelding som et objekt som ikke finnes i databasen.,
Hvis vi prøver å få skriptet bruker INFORMATION_SCHEMA.Utsikt, er det ikke gir noen feilmelding, men det kommer ikke tilbake noen rad.
Du kan ikke bruke SSMS så godt fordi det viser ikke objekter for offentlig rolle-tilgang.
Vi kan Vise Definisjonen tillatelse i SQL Server for å tillate brukere å vise objekt definisjoner. Vi kan enten gir dette tilgang til en offentlig rolle eller en individuell bruker.,
- Hvis vi ønsker å gi vis objekt definisjon rettigheter til alle brukere med offentlig rolle, utfør følgende spørring.,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 for å vise objekt definisjonene som er angitt i forrige avsnitt. Du kan oppdatere tilkobling i SSMS så godt å se alle objekter etter å tildele Vise Definisjonen tillatelser.
Vi kan holde oversikt over tillatelser ved hjelp av sp_helprotect kommando.,
- I skjermbildet nedenfor, kan du se følgende:
- Objekt: vEmployee
- Eier( Skjema) : HumanResources
- Brukeren ( Brukere): Rajendra
- Godkjenneren ( tillatelse Godkjenner): dbo
- Tillatelse: Grant
- Handling( rettigheter): Se Definisjon
Tilbakekalle Vise Definisjoner tillatelse
Vi lærte å Gi Vis definisjon tillatelser til en bruker, rolle eller objekt i SQL Server i forrige avsnitt., Det er også et viktig aspekt å vite hvordan å tilbakekalle disse Vise Definisjoner tillatelser. Mange ganger, kan vi ønsker å gi midlertidig tilgang til en bruker og kalle den tilbake senere. Vi kan tilbakekalle tillatelser til brukeren på tvers av alle databaser med Tilbakekalle Vise Noen Definisjon kommando.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., For Å Rajendra
|
Konklusjon
I denne artikkelen, vi utforsket Gi og Tilbakekalle vise definisjonen tillatelser i SQL Server for å vise definisjoner for et objekt. Det gir deg nødvendig informasjon for å administrere tillatelser for objekt-definisjoner. Hvis du har noen kommentarer eller spørsmål, gjerne la dem i kommentarfeltet nedenfor.,
- Forfatter
- Siste Innlegg
Han er skaperen av en av de største gratis online samlinger av artikler på et enkelt tema, med hans 50-del serien på SQL Server Alltid På Grupper av Tilgjengelighet. Basert på hans bidrag til SQL Server-samfunnet, han har blitt anerkjent med ulike priser inkludert den prestisjefylte «Beste forfatter av the year» kontinuerlig i 2020 og 2021 på SQLShack.,
Raj er alltid interessert i nye utfordringer, slik at hvis du har behov for rådgivning hjelpe på alle fag som er dekket i hans skrifter, han kan nås på rajendra.gupta16@gmail.,com
Vis alle innlegg av Rajendra Gupta
- Økt tidsavbrudd i SQL Server Alltid På Grupper av Tilgjengelighet februar 8, 2021
- Utføre små og store versjon oppgraderinger for AWS RDS SQL Server – 29. januar 2021
- Distribusjon AWS RDS-PostgreSQL-forekomster – 27. januar 2021
Leave a Reply