sql >> Databáze >  >> RDS >> Sqlserver

Mělo by být uděleno oprávnění CONTROL pro uloženou proceduru v SQL Server 2005?

Pokud byla uložená procedura vytvořena pomocí příkazu EXECUTE AS CALLER (což je podle mého názoru výchozí nastavení), musí mít volající všechna oprávnění nezbytná k tomu, aby mohl kromě příkazu EXECUTE v proceduře provádět cokoli, co uložená procedura dělá.

Z dokumentace SQL Server pro EXECUTE AS:

Všimněte si, že kvůli způsobu, jakým SQL Server zpracovává kontroly oprávnění pomocí řetězců vlastnictví, to není vždy striktně pravdivé a hádám, že udělení KONTROLY postupu (které uděluje status vlastnictví příjemci povolení) způsobuje, že tyto kontroly oprávnění jsou obejít.

Pokud vytvoříte proceduru pomocí příkazu EXECUTE AS OWNER, pak byste této proceduře neměli udělovat žádná oprávnění kromě EXECUTE.



  1. Jaká jsou omezení MS Access?

  2. Je možné použít objekt Array jako parametr v anotaci Spring Repository @Query?

  3. Zabezpečení na úrovni řádků pro vlastníka tabulky nefunguje

  4. Vytvoření pohledu MySQL s automaticky se zvyšujícím sloupcem id