Arhn - архитектура программирования

Разрешение расширенного свойства SQL Server

Я использую SQL Server 2008 R2 и хочу иметь пользователя для документации базы данных.

Этот пользователь может добавлять описание только ко всем объектам базы данных, таким как база данных, таблица, представление и столбец.

Какое разрешение я должен назначить этому пользователю?

Я не хочу назначать этому пользователю роль db_owner или db_ddladmin.

Заранее спасибо.


  • Хороший вопрос, но ИМХО лучше подходит для dba.stackexchange.com 30.01.2014

Ответы:


1

Таким образом, чтобы добавить расширенные свойства к объекту, вам необходимо либо владеть объектом, либо иметь привилегию CONTROL или ALTER для объекта.

Таким образом, вы не можете на самом деле ограничить пользователя со встроенными разрешениями простым добавлением расширенных свойств, поскольку для добавления расширенного свойства в базу данных вам придется предоставить владельцу, контролю или изменению на этом уровне пользователю.

Что вы можете сделать, так это создать свою собственную хранимую процедуру для выполнения системной хранимой процедуры с теми же параметрами и настроить ее на выполнение от имени владельца, а затем просто предоставить выполнение этой процедуры пользователю. Таким образом, они ничего не могут сделать в базе данных, кроме запуска процедуры, которая просто добавляет расширенные свойства.

Я проверил следующее, и это работает:

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;
30.01.2014
  • Спасибо. Но я использую инструменты документации базы данных, такие как Redgate SQL Doc 2 и SQL Spec. и не могу использовать хранимую процедуру для ограничения моего пользователя. 01.02.2014

  • 2

    Неважно, используете вы инструмент или нет, чтобы иметь возможность добавлять описания, пользователь должен иметь права на изменение базы данных (проверьте документацию вашего инструмента):

    Права EXEC на системные хранимые процедуры sp_addextendedproperty, fn_listextendedproperties и sp_dropextendedproperty.

    С сайта мсфт:

    Для: sp_addextendedproperty

    Члены фиксированных ролей базы данных db_owner и db_ddladmin могут добавлять расширенные свойства к любому объекту со следующим исключением: db_ddladmin не может добавлять свойства к самой базе данных, пользователям или ролям. Пользователи могут добавлять расширенные свойства к объектам, которыми они владеют или имеют разрешения ALTER или CONTROL.

    Для: sp_dropextendedproperty

    Члены фиксированных ролей базы данных db_owner и db_ddladmin могут удалять расширенные свойства любого объекта. Пользователи могут удалять расширенные свойства объектов, которыми они владеют. Однако только db_owner может удалять свойства для имен пользователей.

    Надеюсь это поможет

    19.05.2014
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..