sql >> Database >  >> RDS >> Sqlserver

Alleen-lezen toegang tot opgeslagen procedure-inhoud

Je kunt ze de VIEW DEFINITION privilege voor die procedures.
Zie hier voor wat dit voorrecht doet.

U kunt VIEW DEFINITION . toepassen op verschillende scopes:

  • Server
  • Database
  • Schema
  • Individuele entiteiten (bijv. een proces, een functie, een weergave)

Je kunt ook een query gebruiken om een ​​script voor veel processen te genereren.
Dus als je een gebruiker Bob hebt :

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

dat geeft je zoiets als dit, dat je dan kunt uitvoeren:

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. ORA-00913 te veel waarden

  2. Waarom retourneert null||null een null-waarde, maar concat(null,null) retourneert een lege string in postgres?

  3. Django-implementatie van standaardwaarde in database

  4. Prestatietests met MySQLdump en het MySQL Shell-hulpprogramma