2014-01-30 2 views
5

Ich verwende SQL Server 2008 R2 und möchte einen Benutzer für Datenbankdokumentation haben.SQL Server Extended-Eigenschaft Berechtigung

Dieser Benutzer kann nur Beschreibungen zu allen Datenbankobjekten wie Datenbank, Tabelle, Ansicht und Spalte hinzufügen.

Welche Berechtigung muss ich diesem Benutzer zuweisen?

Ich möchte keine db_owner oder db_ddladmin Rolle diesem Benutzer zuweisen.

Vielen Dank im Voraus.

+0

Nizza Frage, aber meiner Meinung nach besser geeignet für http://dba.stackexchange.com/ –

Antwort

1

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; 
+0

Dank. Aber ich verwende Datenbankdokumentationstools wie Redgate SQL Doc 2 und SQL Spec. und kann gespeicherte Prozedur nicht verwenden, um meinen Benutzer einzuschränken. –

0

Es spielt keine Rolle, ob Sie ein Tool verwenden oder nicht, in der Lage sein, die Beschreibungen hinzufügen, um die Benutzerberechtigungen zu dem ändern haben muss Datenbank (überprüfen Sie Ihre Mautdokumentation):

EXEC-Rechte für die gespeicherten Systemprozeduren sp_addextendedproperty, fn_listextendedproperties und sp_dropextendedproperty.

Von msft Website:

Für: sp_addextendedproperty

Mitglieder der db_owner und db_ddladmin festen Datenbankrollen können erweiterten Eigenschaften auf jedes Objekt mit folgenden Ausnahme hinzufügen: db_ddladmin kann nicht Eigenschaften den hinzufügen Datenbank selbst oder an Benutzer oder Rollen. Benutzer können ihren Objekten erweiterte Eigenschaften hinzufügen oder ALTER- oder CONTROL-Berechtigungen haben.

Für: sp_dropextendedproperty

Mitglieder der db_owner und db_ddladmin Datenbankrollen zu erweiterten Eigenschaften eines Objekts fallen. Benutzer können die erweiterten Eigenschaften für Objekte löschen, die sie besitzen. Nur db_owner kann jedoch Eigenschaften auf Benutzernamen löschen.

hoffe, das hilft

Verwandte Themen