Máme různé objekty databáze, například zobrazení, uložené procedury, triggery, funkce a indexů v relační databázi. Mnohokrát chceme zobrazit definice těchto objektů. Můžeme použít buď SSMS grafický způsob nebo t-SQL pro generování skriptů.
například chceme zobrazit definici zobrazení SQL .. Pojďme prozkoumat oba způsoby generování skriptů.,
různé metody pro zobrazení definice objektů
SSMS script Wizard:
rozbalte databázi a přejděte na zobrazení. Klikněte pravým tlačítkem myši na konkrétní pohled, pro který chceme generovat skript, a klikněte na zobrazení skriptu jako – >vytvořit.
skript můžeme získat následujícími způsoby.
- v novém okně dotazu
- získat skript v.,SQL souboru
- Zkopírujte skript do schránky
- skript v SQL Agent úlohy
Generování Skriptu Průvodce:
můžeme použít Generování Skriptu Průvodce v SSMS stejně vygenerovat skript. Klepněte pravým tlačítkem myši na databázi a přejděte na úkoly- > generovat skripty.
v průvodci generováním skriptu vyberte konkrétní objekt databáze a klikněte na další.
průvodce můžete dokončit a získat skript.,
pomocí T-SQL:
můžeme také použít dotazy t-SQL k získání skriptu objektů. K získání definic objektu můžete použít následující metody t-SQL.
- získejte skripty pomocí Information_Schama.,Zobrazení:
spusťte následující dotaz na zdroj databáze a zadejte název objektu v klauzuli where
1234SELECT TABLE_NAME jako ViewName,VIEW_DEFINITION jako ViewDefinitionZ 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 funkce
můžeme použít object_definition funkce i pro generování skript pro objekt. V následujícím dotazu, používáme object_definition funkce pro zobrazení vEmployee v AdventureWorks2017 databáze
1VYBERTE object_definition (OBJECT_ID(N‘.,‘))
požadované Oprávnění vytvářet objekty skriptu
To je důležitým aspektem pro jakékoliv DBA ke kontrole oprávnění uživatele pro přístup k objektům. Mnohokrát uživatelé vyžadují další práva v databázi k plnění své povinnosti. Ve výchozím nastavení uživatelé s veřejnou rolí nemají oprávnění k zobrazení definice objektu. Pro vývojáře je užitečné získat definice objektů, aby je mohli provést v nevýrobním prostředí., Nechceme také poskytovat privilegovaná oprávnění uživatelům, zejména ve výrobním prostředí.
pojďme vytvořit nového uživatele databáze a poskytnout veřejnou roli v databázi AdventureWorks2014.
Připojte se k serveru SQL pomocí přihlašovacích údajů s povolením veřejné role.
spusťte dotaz, aby se definice zobrazení objektu. Příkaz sp_helptext zobrazí chybovou zprávu, že objekt v databázi neexistuje.,
Pokud se pokusíme získat skript pomocí INFORMATION_SCHEMA.Zobrazení, nedává žádnou chybovou zprávu; nevrací však žádný řádek.
SSM nelze použít, protože nezobrazuje objekty pro přístup k veřejné roli.
můžeme použít View Definition oprávnění SQL Server umožňuje uživatelům zobrazit definice objektů. Můžeme buď poskytnout tento přístup k veřejné roli, nebo jednotlivému uživateli.,
- pokud chceme poskytnout práva na definici objektu view všem uživatelům s veřejnou rolí, proveďte následující dotaz.,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 ‚.,‘
|
můžete zkusit jiné metody pro zobrazení objektu definice uvedené v předchozí části. Připojení můžete obnovit také v SSMS a zobrazit všechny objekty po přiřazení oprávnění k definici zobrazení.
můžeme sledovat oprávnění pomocí příkazu sp_helprotect.,
- na obrázku níže, můžete pozorovat následující:
- Předmět: vEmployee
- Majitel( Schéma) : lidských zdrojů,
- Příjemce ( Uživatele): Rajendra
- Zadavatel ( oprávnění Zadavatele): dbo
- Oprávnění: Grant
- Akce( práva): Definice Zobrazení
Zrušit View Definice oprávnění
naučili Jsme se Udělit definice Zobrazení oprávnění pro uživatele, roli, nebo objekt v serveru SQL Server v předchozí části., Je také důležitým aspektem vědět, jak zrušit tato oprávnění k definicím zobrazení. Mnohokrát bychom mohli chtít poskytnout dočasný přístup uživateli a později jej zrušit. Můžeme zrušit oprávnění pro uživatele ve všech databázích pomocí příkazu Revoke View Any Definition.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., NA Rajendra
|
Závěr
V tomto článku jsme se zabývali Grant a Revoke view definition oprávnění SQL Server k zobrazení definice objektu. Poskytuje vám potřebné informace pro správu oprávnění pro definice objektů. Pokud máte nějaké připomínky nebo dotazy, neváhejte je nechat v komentářích níže.,
- Autora
- Poslední Příspěvky
je tvůrcem jedné z největších bezplatných online sbírek článků na jedno téma, s jeho 50dílnou sérií na serveru SQL vždy na skupinách dostupnosti. Na základě svého příspěvku do komunity SQL Server byl v letech 2020 a 2021 na sqlshacku nepřetržitě oceněn různými oceněními včetně prestižního „nejlepšího autora roku“.,
Raj je vždy zájem o nové výzvy, takže pokud budete potřebovat poradenství na jakékoliv téma, na něž v jeho spisech, on může být dosaženo na rajendra.gupta16@gmail.,com
Zobrazit všechny příspěvky od Rajendra Gupta
- Relace časové limity v SQL Server Vždy Na Skupiny Dostupnosti – 8. února 2021
- Vykonávající vedlejší a hlavní verze aktualizace pro AWS RDS SQL Server – 29. ledna 2021
- Nasazení AWS RDS instance PostgreSQL – 27. ledna 2021
Leave a Reply