sql >> Databáze >  >> RDS >> Sqlserver

Spuštění SQL grantu na více objektech

Nemůžete použít zástupné znaky – musíte udělit buď všem objekty (nebo všechny objekty ve schématu) - nebo pak musíte vypsat všechny objekty jeden po druhém.

Můžete udělat něco takového - nechat SQL Server vygenerovat tyto příkazy za vás:

SELECT
   p.Name,
   GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'

Tento dotaz vypíše všechny procedury, které začínají XU a vytvořte sloupec, který obsahuje GRANT EXECUTE ON .... prohlášení pro tento postup.

Spusťte to v SQL Server Management Studio a poté zkopírujte výsledný GrantCmd sloupec, vložte jej do nového okna a tam jej spusťte.

A pokud opravdu Chcete-li to automatizovat, můžete tento dotaz také změnit na kurzor a poté použít dynamické SQL k automatickému spuštění výsledných GrantCmd prohlášení....




  1. CloudFormation:Šablona RDS Mysql pro vytvoření DB, tabulek, uživatelů nebo schématu načtení

  2. Filtrování a seskupování dat z tabulky pomocí párů klíč/hodnota

  3. Jaký je rozdíl mezi dočasnou tabulkou a proměnnou tabulky na serveru SQL?

  4. CakePHP:Jak načíst data ze dvou tabulek pomocí vnitřního spojení?