共用方式為


DENY 資料庫權限 (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

拒絕 SQL Server 中資料庫的權限。

Transact-SQL 語法慣例 (部分機器翻譯)

Syntax

DENY <permission> [ ,...n ]
    TO <database_principal> [ ,...n ] [ CASCADE ]
    [ AS <database_principal> ]

<permission> ::=
    permission | ALL [ PRIVILEGES ]

<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 等同於拒絕下列權限:BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。

PRIVILEGES 為符合 ISO 而包含這個項目。 不會變更 ALL 的行為。

CASCADE 指出也會對指定主體對其授與權限的主體拒絕權限。

AS <database_principal> 指定主體,以讓執行這項查詢的主體可從該主體衍生拒絕權限的權利。

Database_user 指定資料庫使用者。

Database_role 指定資料庫角色。

Application_role適用於:SQL Server 2008 (10.0.x) 和更新版本,以及 SQL Database。

指定應用程式角色。

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

資料庫是由伺服器所包含的安全性實體,而該伺服器是其權限階層中的父系。 下表所列的是可以拒絕之最特定和最有限的資料庫權限,並列出利用隱含方式來併入這些權限的較通用權限。

資料庫權限 資料庫權限所隱含 伺服器權限所隱含
管理資料庫批量操作
適用於:SQL Database。
CONTROL 控制伺服器
ALTER CONTROL 變更任何資料庫
更改任何應用程式角色 ALTER 控制伺服器
變更任何組件 ALTER 控制伺服器
更改任何非對稱密鑰 ALTER 控制伺服器
變更任何證書 ALTER 控制伺服器
更改任何列加密金鑰 ALTER 控制伺服器
更改任何欄位主鍵定義 ALTER 控制伺服器
修改任何合約 ALTER 控制伺服器
更改任何資料庫稽核 ALTER 更改任何伺服器審計
更改任何資料庫 DDL 觸發器 ALTER 控制伺服器
變更任何資料庫事件通知 ALTER 更改任何事件通知
修改任何資料庫事件會話
適用於:Azure SQL Database。
ALTER 更改任何事件會話
更改任何資料庫範圍的配置
適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。
CONTROL 控制伺服器
修改任何資料空間 ALTER 控制伺服器
更改任何外部資料來源 ALTER 控制伺服器
修改任何外部檔案格式 ALTER 控制伺服器
更改任何外部函式庫
適用於:SQL Server 2017 (14.x)。
CONTROL 控制伺服器
ALTER ANY 全文目錄 ALTER 控制伺服器
更改任何遮罩 CONTROL 控制伺服器
更改任何訊息類型 ALTER 控制伺服器
更改任何遠端服務綁定 ALTER 控制伺服器
變更任何角色 ALTER 控制伺服器
變更任何路由 ALTER 控制伺服器
更改任何安全策略
適用於:SQL Server 2016 (13.x) 與更新版本,以及 Azure SQL Database。
CONTROL 控制伺服器
更改任何架構 ALTER 控制伺服器
變更任何服務 ALTER 控制伺服器
變更任意對稱金鑰 ALTER 控制伺服器
修改任何使用者 ALTER 控制伺服器
AUTHENTICATE CONTROL 認證伺服器
備份資料庫 CONTROL 控制伺服器
備份日誌 CONTROL 控制伺服器
CHECKPOINT CONTROL 控制伺服器
CONNECT 連接複本 控制伺服器
連接複本 CONTROL 控制伺服器
CONTROL CONTROL 控制伺服器
創建聚合 ALTER 控制伺服器
CREATE ASSEMBLY(建立組件) 變更任何組件 控制伺服器
建立非對稱金鑰 更改任何非對稱密鑰 控制伺服器
創建證書 變更任何證書 控制伺服器
建立合約 修改任何合約 控制伺服器
建立資料庫 CONTROL 建立任何資料庫
建立資料庫 DDL 事件通知 變更任何資料庫事件通知 建立 DDL 事件通知
建立預設值 ALTER 控制伺服器
建立全文目錄 ALTER ANY 全文目錄 控制伺服器
建立函數 ALTER 控制伺服器
建立消息類型 更改任何訊息類型 控制伺服器
建立程序 ALTER 控制伺服器
建立佇列 ALTER 控制伺服器
建立遠端服務系結 更改任何遠端服務綁定 控制伺服器
創建角色 變更任何角色 控制伺服器
建立路由 變更任何路由 控制伺服器
建立規則 ALTER 控制伺服器
建立結構描述 更改任何架構 控制伺服器
建立服務 變更任何服務 控制伺服器
建立對稱金鑰 變更任意對稱金鑰 控制伺服器
CREATE 同義字 ALTER 控制伺服器
CREATE TABLE ALTER 控制伺服器
建立類型 (CREATE TYPE) ALTER 控制伺服器
建立視圖 ALTER 控制伺服器
建立 XML 架構集合 ALTER 控制伺服器
DELETE CONTROL 控制伺服器
EXECUTE CONTROL 控制伺服器
執行任何外部腳本
適用於:SQL Server 2016 (13.x)。
CONTROL 控制伺服器
INSERT CONTROL 控制伺服器
終止資料庫連線
適用於:Azure SQL Database。
CONTROL 變更任何連線
REFERENCES CONTROL 控制伺服器
SELECT CONTROL 控制伺服器
SHOWPLAN CONTROL ALTER 追蹤
訂閱查詢通知 CONTROL 控制伺服器
掌握所有權 CONTROL 控制伺服器
UNMASK CONTROL 控制伺服器
UPDATE CONTROL 控制伺服器
檢視任何數據行加密金鑰 CONTROL 查看任何定義
檢視任何主要金鑰定義 CONTROL 查看任何定義
檢視資料庫狀態 CONTROL 查看伺服器狀態
檢視定義 CONTROL 查看任何定義

Permissions

執行這個陳述式的主體 (或指定了 AS 選項的主體) 必須具有資料庫的 CONTROL 權限,或是具有隱含資料庫 CONTROL 權限的更高權限。

如果是使用 AS 選項,指定的主體必須擁有資料庫。

Examples

A. 拒絕建立憑證的權限

下列範例會對使用者 CREATE CERTIFICATE 拒絕資料庫 AdventureWorks2025MelanieK 權限。

USE AdventureWorks2022;
DENY CREATE CERTIFICATE TO MelanieK;
GO

B. 對應用程式角色拒絕 REFERENCES 權限

下列範例會對應用程式角色 REFERENCES 拒絕資料庫 AdventureWorks2025AuditMonitor 權限。

適用於:SQL Server 2008 (10.0.x) 和更新版本,以及 SQL Database。

USE AdventureWorks2022;
DENY REFERENCES TO AuditMonitor;
GO

C. 拒絕具有 CASCADE 的 VIEW DEFINITION

下列範例會拒絕 VIEW DEFINITION 使用者在 AdventureWorks2025 資料庫上的 CarmineEs 權限,以及 CarmineEs 授與 VIEW DEFINITION 權限的所有主體。

USE AdventureWorks2022;
DENY VIEW DEFINITION TO CarmineEs CASCADE;
GO

另請參閱