DENY 架构权限 (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

拒绝授予架构权限。

Transact-SQL 语法约定

语法

DENY permission  [ ,...n ] } ON SCHEMA :: schema_name  
    TO database_principal [ ,...n ]   
    [ CASCADE ]  
        [ AS denying_principal ]  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

permission
指定可拒绝授予架构的权限。 有关这些权限的列表,请参阅本文后面的“备注”部分。

ON SCHEMA :: schema*_name*
指定权限在其中被拒绝的架构。 需要使用作用域限定符 ::。

database_principal
指定对其拒绝权限的主体。 database_principal 可以为以下主体之一:

  • 数据库用户
  • 数据库角色
  • 应用程序角色
  • 映射到 Windows 登录名的数据库用户
  • 映射到 Windows 组的数据库用户
  • 映射到证书的数据库用户
  • 映射到非对称密钥的数据库用户
  • 未映射到服务器主体的数据库用户

CASCADE
对指定 database_principal 授予权限的任何其他主体拒绝授予权限。

denying_principal
指定一个主体,执行该查询的主体从该主体获得拒绝授予该权限的权利。 denying_principal 可以为以下主体之一:

  • 数据库用户
  • 数据库角色
  • 应用程序角色
  • 映射到 Windows 登录名的数据库用户
  • 映射到 Windows 组的数据库用户
  • 映射到证书的数据库用户
  • 映射到非对称密钥的数据库用户
  • 未映射到服务器主体的数据库用户

注解

架构是数据库级别的安全对象。 它由权限层次结构中属于其父级的数据库进行约束。 下表列出了可在架构上拒绝的最为具体的限定权限。 该表显示通过暗示包含它们的更一般的权限。

架构权限 架构权限隐含的权限 数据库权限隐含的权限
ALTER CONTROL ALTER ANY SCHEMA
CONTROL CONTROL CONTROL
CREATE SEQUENCE ALTER ALTER ANY SCHEMA
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
REFERENCES CONTROL REFERENCES
SELECT CONTROL SELECT
TAKE OWNERSHIP CONTROL CONTROL
UPDATE CONTROL UPDATE
VIEW CHANGE TRACKING CONTROL CONTROL
VIEW DEFINITION CONTROL VIEW DEFINITION

权限

需要对架构具有 CONTROL 权限。 如果要使用 AS 选项,则指定的主体必须拥有架构。

另请参阅

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)