Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Lesezugriff auf den Inhalt gespeicherter Prozeduren

Sie können ihnen die VIEW DEFINITION gewähren Privilegien für diese Prozesse.
Siehe hier für das, was dieses Privileg bewirkt.

Sie können VIEW DEFINITION anwenden in verschiedenen Bereichen:

  • Server
  • Datenbank
  • Schema
  • Einzelne Entitäten (z. B. eine Prozedur, eine Funktion, eine Ansicht)

Sie können auch eine Abfrage verwenden, um ein Skript für viele Prozesse zu generieren.
Wenn Sie also einen Benutzer Bob haben :

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

das wird Ihnen so etwas geben, das Sie dann ausführen können:

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;
...