适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
拒绝授予架构权限。
Syntax
DENY permission  [ ,...n ] } ON SCHEMA :: schema_name  
    TO database_principal [ ,...n ]   
    [ CASCADE ]  
        [ AS denying_principal ]  
Arguments
              permission
指定可拒绝授予架构的权限。 有关这些权限的列表,请参阅本文后面的“备注”部分。
ON SCHEMA :: schema*_name*
指定权限在其中被拒绝的架构。 需要使用作用域限定符 ::。
              database_principal
指定对其拒绝权限的主体。 
              database_principal 可以为以下主体之一:
- Database user
- Database role
- Application role
- 映射到 Windows 登录名的数据库用户
- 映射到 Windows 组的数据库用户
- 映射到证书的数据库用户
- 映射到非对称密钥的数据库用户
- 未映射到服务器主体的数据库用户
CASCADE
对指定 database_principal 授予权限的任何其他主体拒绝授予权限。
              denying_principal
指定一个主体,执行该查询的主体从该主体获得拒绝授予该权限的权利。 
              denying_principal 可以为以下主体之一:
- Database user
- Database role
- Application role
- 映射到 Windows 登录名的数据库用户
- 映射到 Windows 组的数据库用户
- 映射到证书的数据库用户
- 映射到非对称密钥的数据库用户
- 未映射到服务器主体的数据库用户
Remarks
架构是数据库级别的安全对象。 它由权限层次结构中属于其父级的数据库进行约束。 下表列出了可在架构上拒绝的最为具体的限定权限。 该表显示通过暗示包含它们的更一般的权限。
| Schema permission | 架构权限隐含的权限 | 数据库权限隐含的权限 | 
|---|---|---|
| ALTER | CONTROL | 更改任何架构 | 
| CONTROL | CONTROL | CONTROL | 
| CREATE SEQUENCE | ALTER | 更改任何架构 | 
| DELETE | CONTROL | DELETE | 
| EXECUTE | CONTROL | EXECUTE | 
| INSERT | CONTROL | INSERT | 
| REFERENCES | CONTROL | REFERENCES | 
| SELECT | CONTROL | SELECT | 
| TAKE OWNERSHIP | CONTROL | CONTROL | 
| UPDATE | CONTROL | UPDATE | 
| 查看更改跟踪 | CONTROL | CONTROL | 
| VIEW DEFINITION | CONTROL | VIEW DEFINITION | 
Permissions
需要对架构具有 CONTROL 权限。 如果要使用 AS 选项,则指定的主体必须拥有架构。
See Also
              CREATE SCHEMA (Transact-SQL)
              DENY (Transact-SQL)
              权限(数据库引擎)
              主体(数据库引擎)
              sys.fn_builtin_permissions (Transact-SQL)
              sys.fn_my_permissions (Transact-SQL)
              HAS_PERMS_BY_NAME (Transact-SQL)