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

Přístup pouze pro čtení k obsahu uložené procedury

Můžete jim udělit VIEW DEFINITION oprávnění k těmto procesům.
Viz zde za to, co toto privilegium dělá.

Můžete použít VIEW DEFINITION v různém rozsahu:

  • Server
  • Databáze
  • Schéma
  • Jednotlivé entity (např. proces, funkce, pohled)

Můžete také použít dotaz ke generování skriptu pro mnoho procesů.
Pokud tedy máte uživatele Bob :

SELECT N'GRANT VIEW DEFINITION ON '
    + QUOTENAME(SPECIFIC_SCHEMA)
    + N'.'
    + QUOTENAME(SPECIFIC_NAME)
    + N' TO Bob;'
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';

to vám dá něco takového, co pak můžete spustit:

GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO Bob;
...


  1. Vrácení všech řádků s určitými podmínkami

  2. Získávání chyby:Autentizace peer selhala pro uživatele postgres, když se pokouší zprovoznit pgsql s rails

  3. Analýza smrti o tisíc snižuje pracovní zátěž

  4. Vrátit seznam funkcí oddílů v SQL Server (T-SQL)