Um also einem Objekt erweiterte Eigenschaften hinzuzufügen, müssen Sie entweder das Objekt besitzen oder die CONTROL- oder ALTER-Berechtigung für das Objekt besitzen.
So können Sie einen Benutzer mit den integrierten Berechtigungen zum Hinzufügen von erweiterten Eigenschaften zum Hinzufügen einer erweiterten Eigenschaft in der Datenbank nicht wirklich einschränken. Sie müssten dem Benutzer Besitzer, Steuerelement oder Benutzer auf dieser Ebene zuweisen.
Sie können jedoch Ihre eigene gespeicherte Prozedur erstellen, um die gespeicherte Systemprozedur mit den gleichen Parametern auszuführen und sie so einzurichten, dass sie als Eigentümer ausgeführt wird. Dann erteilen Sie dem Benutzer die Ausführung dieser Prozedur. Auf diese Weise können sie nichts in der Datenbank tun, außer das Verfahren auszuführen, das nur die erweiterten Eigenschaften hinzufügt.
Ich habe folgende getestet und es funktioniert:
CREATE PROCEDURE add_property
(
@name NVARCHAR(128) = NULL,
@value NVARCHAR(128) = NULL,
@level0type NVARCHAR(128) = NULL,
@level0name NVARCHAR(128) = NULL,
@level1type NVARCHAR(128) = NULL,
@level1name NVARCHAR(128) = NULL,
@level2type NVARCHAR(128) = NULL,
@level2name NVARCHAR(128) = NULL
)
WITH EXECUTE AS OWNER
AS
EXEC sp_addextendedproperty
@name,
@value,
@level0type,
@level0name,
@level1type,
@level1name,
@level2type,
@level2name;
Nizza Frage, aber meiner Meinung nach besser geeignet für http://dba.stackexchange.com/ –