sql >> Databasteknik >  >> RDS >> Sqlserver

Bör CONTROL-tillstånd ges för en lagrad procedur i SQL Server 2005?

Om den lagrade proceduren skapades med EXECUTE AS CALLER (vilket jag tror är standard), måste den som ringer ha alla nödvändiga behörigheter för att göra vad den lagrade proceduren än gör utöver EXECUTE på proceduren.

Från SQL Server-dokumentationen för EXECUTE AS:

Observera att på grund av hur SQL Server bearbetar behörighetskontroller med hjälp av ägandekedjor, är detta inte alltid strikt sant, och jag gissar att beviljande av KONTROLL på proceduren (som ger ägarstatus till förmånstagaren) gör att dessa behörighetskontroller blir förbigås.

Om du skapar proceduren med UTFÖR SOM ÄGARE, bör du inte behöva ge några behörigheter utöver EXEKUT för proceduren.



  1. Hur kan jag förhindra att Postgres infogar en underfråga?

  2. Välj alla alternativvärden php mysql

  3. jQuery UI Sorterbart, skriv sedan ordning i en databas

  4. Hur kan jag konvertera geometridata till geografidata i MS SQL Server 2008?