Vi har olika databasobjekt som visa, lagrade procedurer, utlösare, funktioner och index i en relationsdatabas. Många gånger vill vi se definitioner för dessa objekt. Vi kan använda antingen SSMS grafiskt sätt eller T-SQL för att generera skript.
till exempel vill vi visa definitionen av en SQL-vy .. Låt oss utforska båda sätten att generera skript.,
olika metoder för att visa definitionen av objekt
SSMS Script Wizard:
expandera databasen och gå till vyer. Högerklicka på en viss vy som vi vill generera script och klicka på Script View as ->Skapa till.
Vi kan få skriptet på följande sätt.
- I det nya frågefönstret
- hämta skriptet i .,SQL-fil
- kopiera skriptet i Urklipp
- få skript i en SQL Agent jobb
generera Scriptguiden:
Vi kan använda generera Scriptguiden i SSMS samt för att generera script. Högerklicka på en databas och gå till Tasks -> generera skript.
i guiden Skapa script väljer du det specifika databasobjektet och klickar på Nästa.
Du kan slutföra guiden för att få skriptet.,
använda T-SQL:
Vi kan också använda T-SQL-frågor för att få objektets skript. Du kan använda följande T-SQL-metoder för att få definitioner för ett objekt.
- få skript med Information_Schama.,Vyer:
utför följande fråga i källdatabasen och Ange objektnamnet i where-klausulen
1234välj table_name som visningsnamn,view_definition som visningsdefinitionfrån 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 använda en object_definition funktion samt för att generera ett skript för objektet. I följande fråga använder vi object_definition-funktionen för en vy vEmployee i AdventureWorks2017-databasen
1välj object_definition (object_id(n’.,
behörigheter som krävs för att generera objekt script
det är en viktig aspekt för alla DBA att kontrollera användarbehörigheterna för åtkomst till objekten. Många gånger användare kräver ytterligare rättigheter på en databas för att utföra sin plikt. Som standard har användare med offentlig roll inte behörighet att visa definitionen av ett objekt. Det är användbart för utvecklarna att få objektdefinitionerna så att de kan utföra detta i en icke-produktionsmiljö., Vi vill inte heller ge privilegierade behörigheter till användare, särskilt i produktionsmiljön.
låt oss skapa en ny databasanvändare och ge en offentlig roll i AdventureWorks2014-databasen.
Anslut till SQL Server med inloggningsuppgifter som har behörighet för offentlig roll.
utför frågan för att få visningsdefinitionen för ett objekt. Kommandot sp_helptext ger ett felmeddelande om att ett objekt inte finns i databasen.,
om vi försöker få skriptet med INFORMATION_SCHEMA.Vyer, det ger inte något felmeddelande; men det returnerar inte någon rad.
Du kan inte använda SSM också eftersom det inte visar objekten för allmänhetens rollåtkomst.
Vi kan använda Visningsdefinitionstillstånd i SQL Server för att tillåta användare att visa objektdefinitionerna. Vi kan antingen ge denna tillgång till en offentlig roll eller en enskild användare.,
- Om vi vill ge visningsobjektdefinitionsrättigheter till alla användare med offentlig roll, kör följande fråga.,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 prova andra metoder för att visa objektdefinitioner som anges i föregående avsnitt. Du kan också uppdatera anslutningen i SSMS för att visa alla objekt efter att ha tilldelat Visningsdefinitionsbehörigheterna.
Vi kan hålla reda på behörigheterna med kommandot sp_helprotect.,
- i skärmdumpen nedan kan du observera följande:
- objekt: vEmployee
- ägare( Schema) : HumanResources
- Grantee ( användare): Rajendra
- Grantor DBO
- tillstånd: bevilja
- åtgärd ( rättigheter): visa definition
återkalla visningsdefinitionsbehörighet
vi lärde oss att bevilja visningsdefinitionsbehörigheterna till en användare, roll eller objekt i SQL Server i föregående avsnitt., Det är också en viktig aspekt att veta hur man återkallar dessa Visningsdefinitionsbehörigheter. Många gånger kanske vi vill ge tillfällig åtkomst till en användare och återkalla den senare. Vi kan återkalla behörigheterna till användaren i alla databaser med återkalla visa någon Definition kommando.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., Till Rajendra
|
slutsats
i den här artikeln utforskade vi bevilja och återkalla visningsdefinitionsbehörigheter i SQL Server för att visa definitioner för ett objekt. Det ger dig nödvändig information för att hantera behörigheterna för objektdefinitioner. Om du har några kommentarer eller frågor, gärna lämna dem i kommentarerna nedan.,
- författare
- Senaste inlägg
som MCSA-certifierad och Microsoft-certifierad tränare i Gurgaon, Indien, med 13 års erfarenhet, Rajendra arbetar för en mängd stora företag med fokus på prestandaoptimering, övervakning, hög tillgänglighet och strategier för katastrofåterställning och genomförande., Han är författare till hundratals auktoritativa artiklar på SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, och relaterade tekniker som har visats av över 10m läsare hittills.
han är skaparen av en av de största gratis online samlingar av artiklar om ett enda ämne, med sin 50-del serien på SQL Server alltid på tillgänglighet grupper. Baserat på hans bidrag till SQL Server-samhället har han blivit erkänd med olika utmärkelser, inklusive den prestigefyllda ”årets bästa författare” kontinuerligt i 2020 och 2021 på SQLShack.,
Raj är alltid intresserad av nya utmaningar så om du behöver konsulthjälp i något ämne som omfattas av hans skrifter, kan han nås på rajendra.gupta16@gmail.,com
Visa alla inlägg från Rajendra Gupta
- Session timeouts i SQL Server alltid på tillgänglighet grupper – 8 februari 2021
- utföra mindre och större versionsuppgraderingar för AWS RDS SQL Server – 29 januari, 2021
- distribuera AWS rds PostgreSQL instanser – januari 27, 2021
Leave a Reply