Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Запрещает разрешения на член класса OBJECT защищаемых объектов. Элементы класса OBJECT: таблицы, представления, функции с табличным значением, хранимые процедуры, расширенные хранимые процедуры, скалярные функции, агрегатные функции, очереди обслуживания и синонимы.
Соглашения о синтаксисе Transact-SQL
Syntax
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
Arguments
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 может быть указан в предложении PERMISSIONS или после имени защищаемого объекта.
Caution
Запрет (DENY) уровня таблицы имеет меньший приоритет, чем разрешение (GRANT) уровня столбца. Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости. В SQL Server такое поведение отличается, если сервер настроен для выполнения с конфигурацией "Common Criteria Compliance Enabled". Но обычно ее следует использовать с осторожностью, а не во всех случаях.
НА [ ОБЪЕКТ :: ] [ schema_name] .object_name
Указывает объект, для которого запрещается разрешение. Фраза OBJECT необязательна, если указан аргумент schema_name. Если же она указана, указание квалификатора области (::) обязательно. Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, обязательно указание квалификатора области схемы (.).
К <database_principal>
Задает участника, для которого запрещается разрешение.
CASCADE
Указывает, что запрещаемое разрешение также запрещается для других участников, которым оно было предоставлено данным участником.
КАК 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
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.
Remarks
Сведения об объектах доступны через различные представления каталога. Дополнительные сведения см. в разделе Представления каталога объектов (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 |
| ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ | CONTROL | CONTROL |
| UPDATE | CONTROL | UPDATE |
| ПРОСМОТР ИЗМЕНЕНИЙ | CONTROL | ПРОСМОТР ИЗМЕНЕНИЙ |
| ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ | CONTROL | ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ |
Permissions
Необходимо разрешение CONTROL для данного объекта.
При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который запрещаются для этого участника.
Examples
В следующих примерах используется база данных AdventureWorks.
A. Запрет разрешения SELECT на таблицу
В следующем примере запрещается разрешение SELECT для пользователя RosaQdM на таблицу Person.Address.
DENY SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Запрет разрешения EXECUTE на хранимую процедуру
В следующем примере запрещается разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo для роли приложения под названием Recruiting11.
DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Запрет разрешения REFERENCES на представление с CASCADE
В следующем примере запрещается разрешение REFERENCES на столбец BusinessEntityID в представлении HumanResources.vEmployee для пользователя Wanida с CASCADE.
DENY REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida CASCADE;
GO
См. также
GRANT, предоставление разрешений на объект (Transact-SQL)
РАЗРЕШЕНИЯ ОБЪЕКТА REVOKE (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)
Securables
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)