sql >> Databasteknik >  >> RDS >> Sqlserver

Endast läsåtkomst till lagrat procedurinnehåll

Du kan ge dem VIEW DEFINITION privilegium till dessa processer.
Se här för vad detta privilegium gör.

Du kan använda VIEW DEFINITION i olika omfattningar:

  • Server
  • Databas
  • Schema
  • Enskilda enheter (t.ex. en proc, en funktion, en vy)

Du kan också använda en fråga för att skapa ett skript för många processer.
Så om du har en användare 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';

som ger dig något sånt här, som du sedan kan köra:

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. Hur SQLite Ltrim() fungerar

  2. Att få SQL lagrad procedur resulterar i data.frame-format med RODBC

  3. Hur fungerar Oracle SELECT FROM dual med flera fält

  4. Så skapar du ett tomt formulär i Access 2016