sql >> Databasteknik >  >> RDS >> Sqlserver

Lagrad procedur och behörigheter - räcker det med EXECUTE?

Behörigheter för tabeller kontrolleras inte (inklusive DENY) om tabeller och proc har samma ägare. De kan också finnas i olika scheman så länge som schemana har samma ägare.

Se Ägarskapskedja på MSDN

Redigera, från en kommentar från ett raderat svar.

Kontexten är alltid den aktuella inloggningen om inte EXECUTE AS som använts:endast refererade objekt DML-behörigheter är inte kontrollerade. Försök med OBJECT_ID(referenstabell) i en lagrad proc där inga rättigheter tilldelas referenstabell. Det ger NULL. Om den körs av ägaren till den lagrade procen skulle den ge ett värde eftersom ägaren har rättigheter på referenstabellen



  1. PGLogical 1.1-paket för PostgreSQL 9.6beta1

  2. Långsam bulkinsats för bord med många index

  3. Fixa "datum är inkompatibelt med int" i SQL Server när du lägger till eller drar ifrån ett datum

  4. Tidsstämpel skillnad i timmar för PostgreSQL