sql >> Database teknologi >  >> RDS >> Sqlserver

Skrivebeskyttet adgang til lagret procedureindhold

Du kan give dem VIEW DEFINITION privilegium til disse processer.
Se her for hvad dette privilegium gør.

Du kan anvende VIEW DEFINITION på forskellige områder:

  • Server
  • Database
  • Skema
  • Individuelle enheder (f.eks. en proc, en funktion, en visning)

Du kan også bruge en forespørgsel til at generere et script til mange processer.
Så hvis du har en bruger 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';

det vil give dig noget som dette, som du derefter kan køre:

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. PLSQL looper gennem JSON-objekt

  2. Lagring af statistiske data, skal jeg bruge DECIMAL, FLOAT eller DOUBLE?

  3. MySQL-syntaksfejl med simpel INSERT?

  4. Pivotering af rækker til kolonner dynamisk i Oracle