Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрещает разрешения на член класса OBJECT защищаемых объектов. Члены класса OBJECT: таблицы, представления, возвращающие табличное значение функции, хранимые процедуры, расширенные хранимые процедуры, скалярные функции, статистические функции, очереди обслуживания и синонимы.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
DENY <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Аргументы
- permission
Обозначает разрешение, которое можно запретить для содержащегося в схеме объекта. Список разрешений см. в подразделе «Примечания» далее в этом разделе.
ALL
Запрет разрешения ALL не запрещает все возможные разрешения. Запрет ALL эквивалентен запрету всех разрешений ANSI-92, применимых к данному объекту. Значение ALL меняется следующим образом.Разрешения на скалярные функции: EXECUTE, REFERENCES.
Разрешения на возвращающие табличное значение функции: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Разрешения на хранимые процедуры: EXECUTE
Разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- PRIVILEGES
Включено для совместимости с ANSI-92. Не влияет на работу аргумента ALL.
column
Указывает имя столбца в таблице, представлении или возвращающей табличное значение функции, для которых запрещается разрешение. Круглые скобки обязательны ( ). Для столбца можно запретить только разрешения SELECT, REFERENCES и UPDATE. Аргумент column можно задавать в предложении разрешений или после имени защищаемого объекта.
Внимание!В SQL Server 2005 DENY на уровне таблицы не имеет преимущества над GRANT на уровне столбца. Такая несогласованность иерархии разрешений оставлена для обратной совместимости.
- ON [ OBJECT :: ] [ schema_name ] . object_name
Указывает объект, для которого запрещается разрешение. Фраза OBJECT необязательна, если задан аргумент schema_name. Если фраза OBJECT используется, квалификатор области (::) обязателен. Если аргумент schema_name не задан, используется схема по умолчанию. Если аргумент schema_name задан, необходим квалификатор области схемы (.).
- TO <database_principal>
Задает участника, для которого запрещается разрешение.
- CASCADE
Показывает, что запрещаемое разрешение также запрещается для других участников, которым оно было предоставлено данным участником.
- AS <database_principal>
Задает участника, от которого участник, выполняющий данный запрос, получает право на запрет разрешения.
- Database_user
Задает пользователя базы данных.
- Database_role
Задает роль базы данных.
- Application_role
Задает роль приложения.
- Database_user_mapped_to_Windows_User
Задает пользователя базы данных, сопоставленного с пользователем Windows.
- Database_user_mapped_to_Windows_Group
Задает пользователя базы данных, сопоставленного с группой Windows.
- Database_user_mapped_to_certificate
Задает пользователя базы данных, сопоставленного с сертификатом.
- Database_user_mapped_to_asymmetric_key
Задает пользователя базы данных, сопоставленного с асимметричным ключом.
- Database_user_with_no_login
Задает пользователя базы данных, не имеющего соответствующего участника уровня сервера.
Замечания
Данные об объектах доступны в различных представлениях каталога. Дополнительные сведения см. в разделе Представления каталога объектов (Transact-SQL).
Объект — это защищаемый объект уровня схемы, содержащийся в той схеме, которая является его родителем в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно запретить для объекта, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их.
| Разрешение объекта | Содержится в разрешении на объект | Содержится в разрешении на схему |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Необходимо разрешение CONTROL для объекта.
При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который запрещаются для этого участника.
Примеры
А. Запрет разрешения SELECT на таблицу
В следующем примере запрещает разрешение SELECT для пользователя RosaQdM на таблицу Person.Address в базе данных AdventureWorks.
USE AdventureWorks;
DENY SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
Б. Запрет разрешения EXECUTE на хранимую процедуру
В следующем примере запрещается разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo для роли приложения под названием Recruiting11.
USE AdventureWorks;
DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
В. Запрет разрешения REFERENCES на представление с CASCADE
В следующем примере запрещается разрешение REFERENCES на столбец EmployeeID в представлении HumanResources.vEmployee для пользователя Wanida с CASCADE.
USE AdventureWorks;
DENY REFERENCES (EmployeeID) ON OBJECT::HumanResources.vEmployee
TO Wanida CASCADE;
GO
См. также
Справочник
GRANT, предоставление разрешений на объект (Transact-SQL)
REVOKE, отмена разрешения (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Другие ресурсы
Разрешения
Участники
Защищаемые объекты