Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Grant wykonuje się na wielu obiektach

Nie możesz używać symboli wieloznacznych – musisz przyznać albo wszystkim obiekty (lub wszystkie obiekty w schemacie) - albo musisz wylistować wszystkie obiekty jeden po drugim.

Możesz zrobić coś takiego - niech SQL Server wygeneruje te instrukcje za Ciebie:

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

To zapytanie wyświetli listę wszystkich procedur, które zaczynają się od XU i utwórz kolumnę zawierającą GRANT EXECUTE ON .... oświadczenie dla tej procedury.

Uruchom to w SQL Server Management Studio, a następnie po prostu skopiuj wynikowy GrantCmd kolumny, wklej go do nowego okna i tam wykonaj.

A jeśli naprawdę chcesz to zautomatyzować, możesz również zmienić to zapytanie w kursor, a następnie użyć dynamicznego SQL, aby automatycznie wykonać te wynikowe GrantCmd oświadczenia....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę wyświetlić usunięte rekordy z tabeli serwera sql?

  2. jak pobrać dane z html w kolumnie SQL Server

  3. Zapytanie do serwera połączonego Postgresql bardzo wolne

  4. SQL Server UNION — jakie jest domyślne zachowanie ORDER BY?

  5. Dynamicznie przypisz nazwę pliku do ciągu połączenia programu Excel