事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊
適用於:MICROSOFT網狀架構倉儲中的
SQL Server
Azure SQL 資料庫 Azure SQL 受控執行個體
Azure Synapse Analytics Analytics Platform System (PDW)
SQL 分析端點,Microsoft Fabric SQL 資料庫中的網狀
架構倉儲Microsoft網狀架構
傳回資料庫中每個許可權或數據行例外狀況許可權的數據列。 針對數據行,每個許可權的數據列都與對應的物件層級許可權不同。 如果數據行許可權與對應的物件許可權相同,則沒有任何數據列,而且套用的許可權就是對象的數據列。
重要
數據行層級許可權會覆寫相同實體上的物件層級許可權。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
class | tinyint | 識別存在許可權的類別。 如需詳細資訊,請參閱 sys.securable_classes (Transact-SQL) 。 0 = 資料庫 1 = 對象或資料行 3 = 架構 4 = 資料庫主體 5 = 元件 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 6 = 類型 10 = XML 架構集合 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 15 = 訊息類型 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 16 = 服務合約 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 17 = 服務 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 18 = 遠端服務系結 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 19 = Route - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 23 =全文檢索目錄 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 24 = 對稱金鑰 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 25 = 憑證 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 26 = 非對稱金鑰 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 29 = 全文檢索停用字詞表 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 31 = 搜尋屬性清單 - 適用於:SQL Server 2008 (10.0.x) 和更新版本。 32 = 資料庫範圍認證 - 適用於:SQL Server 2016 (13.x) 和更新版本。 34 = 外部語言 - 適用於:SQL Server 2019 (15.x) 和更新版本。 |
class_desc | nvarchar(60) | 許可權存在之類別的描述。 DATABASE OBJECT_OR_COLUMN SCHEMA DATABASE_PRINCIPAL ASSEMBLY TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SERVICE REMOTE_SERVICE_BINDING ROUTE FULLTEXT_CATALOG SYMMETRIC_KEYS CERTIFICATE ASYMMETRIC_KEY FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL 外部語言 |
major_id | int | 存在許可權的標識碼,根據類別解譯。 通常, major_id 只會套用至 類別所代表的標識符類型。 0 = 資料庫本身 >0 = 使用者物件的物件識別碼 <0 = 系統對象的物件識別碼 |
minor_id | int | 存在許可權之專案的次要標識符,根據類別解譯。 通常, minor_id 是零,因為對象類別沒有子類別可用。 否則,它是數據表的數據行標識符。 |
grantee_principal_id | int | 授與許可權的資料庫主體標識碼。 |
grantor_principal_id | int | 這些許可權授與者的資料庫主體標識碼。 |
type | char(4) | 資料庫許可權類型。 如需許可權類型清單,請參閱下表。 |
permission_name | nvarchar(128) | 許可權名稱。 |
state | char(1) | 權限狀態: D = 拒絕 R = 撤銷 G = 授與 W = 授與授與選項 |
state_desc | nvarchar(60) | 權限狀態的描述: 拒絕 REVOKE GRANT GRANT_WITH_GRANT_OPTION |
下列類型的許可權是可能的。
權限類型 | 權限名稱 | 適用於安全性實體 |
---|---|---|
AADS | ALTER ANY DATABASE EVENT SESSION | DATABASE |
AAMK | ALTER ANY MASK | DATABASE |
AEDS | ALTER ANY EXTERNAL DATA SOURCE | DATABASE |
AEFF | ALTER ANY EXTERNAL FILE FORMAT | DATABASE |
AL | ALTER | 應用程式角色、元件、非對稱密鑰、憑證、合約、資料庫、全文檢索目錄、訊息類型、對象、遠端服務系結、角色、路由、架構、服務、對稱密鑰、使用者、XML 架構集合 |
ALAK | ALTER ANY ASYMMETRIC KEY | DATABASE |
ALAR | ALTER ANY APPLICATION ROLE | DATABASE |
ALAS | ALTER ANY ASSEMBLY | DATABASE |
ALCF | ALTER ANY CERTIFICATE | DATABASE |
ALDS | ALTER ANY DATASPACE | DATABASE |
ALED | ALTER ANY DATABASE EVENT NOTIFICATION | DATABASE |
ALFT | ALTER ANY FULLTEXT CATALOG | DATABASE |
ALMT | ALTER ANY MESSAGE TYPE | DATABASE |
ALRL | ALTER ANY ROLE | DATABASE |
ALRT | ALTER ANY ROUTE | DATABASE |
ALSB | ALTER ANY REMOTE SERVICE BINDING | DATABASE |
ALSC | ALTER ANY CONTRACT | DATABASE |
ALSK | ALTER ANY SYMMETRIC KEY | DATABASE |
ALSM | ALTER ANY SCHEMA | DATABASE |
ALSV | ALTER ANY SERVICE | DATABASE |
ALTG | ALTER ANY DATABASE DDL TRIGGER | DATABASE |
ALUS | 修改任何使用者 | DATABASE |
AUTH | AUTHENTICATE | DATABASE |
BADB | BACKUP DATABASE | DATABASE |
BALO | BACKUP LOG | DATABASE |
CL | CONTROL | 應用程式角色、元件、非對稱密鑰、憑證、合約、資料庫、全文檢索目錄、訊息類型、對象、遠端服務系結、角色、路由、架構、服務、對稱密鑰、類型、使用者、XML 架構集合 |
CO | CONNECT | DATABASE |
CORP | CONNECT REPLICATION | DATABASE |
CP | CHECKPOINT | DATABASE |
CRAG | CREATE AGGREGATE | DATABASE |
CRAK | CREATE ASYMMETRIC KEY | DATABASE |
CRAS | CREATE ASSEMBLY | DATABASE |
CRCF | CREATE CERTIFICATE | DATABASE |
CRDB | CREATE DATABASE | DATABASE |
CRDF | CREATE DEFAULT | DATABASE |
CRED | CREATE DATABASE DDL EVENT NOTIFICATION | DATABASE |
CRFN | CREATE FUNCTION | DATABASE |
CRFT | CREATE FULLTEXT CATALOG | DATABASE |
CRMT | CREATE MESSAGE TYPE | DATABASE |
CRPR | 建立程序 | DATABASE |
CRQU | CREATE QUEUE | DATABASE |
CRRL | CREATE ROLE | DATABASE |
CRRT | CREATE ROUTE | DATABASE |
CRRU | CREATE RULE | DATABASE |
CRSB | CREATE REMOTE SERVICE BINDING | DATABASE |
CRSC | CREATE CONTRACT | DATABASE |
CRSK | CREATE SYMMETRIC KEY | DATABASE |
CRSM | CREATE SCHEMA | DATABASE |
CRSN | CREATE SYNONYM | DATABASE |
CRSO |
適用於:SQL Server 2012 (11.x) 和更新版本。 CREATE SEQUENCE |
DATABASE |
CRSV | CREATE SERVICE | DATABASE |
CRTB | 建立資料表 | DATABASE |
CRTY | 建立類型 | DATABASE |
CRVW | 建立檢視 | DATABASE |
CRXS |
適用於:SQL Server 2008 (10.0.x) 和更新版本。 CREATE XML SCHEMA COLLECTION |
DATABASE |
DABO | ADMINISTER DATABASE BULK OPERATIONS | DATABASE |
DL | DELETE | DATABASE、OBJECT、SCHEMA |
EAES | EXECUTE ANY EXTERNAL SCRIPT | DATABASE |
EX | 執行 CREATE 陳述式之前,請先執行 | ASSEMBLY、DATABASE、OBJECT、SCHEMA、TYPE、XML SCHEMA COLLECTION |
IM | IMPERSONATE | USER |
IN | INSERT | DATABASE、OBJECT、SCHEMA |
RC | RECEIVE | OBJECT |
RF | REFERENCES | ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、SCHEMA、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION |
SL | SELECT | DATABASE、OBJECT、SCHEMA |
SN | SEND | SERVICE |
SPLN | SHOWPLAN | DATABASE |
SUQN | SUBSCRIBE QUERY NOTIFICATIONS | DATABASE |
收件人 | TAKE OWNERSHIP | ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION |
UP | UPDATE | DATABASE、OBJECT、SCHEMA |
VW | VIEW DEFINITION | 應用程式角色、元件、非對稱密鑰、憑證、合約、資料庫、全文檢索目錄、訊息類型、對象、遠端服務系結、角色、路由、架構、服務、對稱密鑰、類型、使用者、XML 架構集合 |
VWCK | VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | DATABASE |
VWCM | VIEW ANY COLUMN MASTER KEY DEFINITION | DATABASE |
VWCT | VIEW CHANGE TRACKING | TABLE、SCHEMA |
VWDS | 檢視資料庫狀態 | DATABASE |
在大部分情況下,REVOKE 命令會從 sys.database_permissions移除 GRANT 或 DENY 專案。
不過,可以授與 或 DENY 對象的許可權,然後撤銷數據行上的該許可權。 此數據行例外狀況許可權會顯示為 sys.database_permissions 中的 REVOKE。 請考慮下列範例:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
這些許可權會顯示在sys.database_permissions為一個 GRANT(數據表上)和一個 REVOKE(在數據行上)。
重要
REVOKE 與 DENY 不同,因為 Sales
主體可能仍可透過其他許可權存取數據行。 如果我們拒絕許可權,而不是撤銷許可權,Sales
將無法檢視數據行的內容,因為 DENY 一律取代 GRANT。
任何使用者都可以看到自己的許可權。 若要查看其他用戶的許可權,需要 VIEW DEFINITION、ALTER ANY USER 或使用者的任何許可權。 若要查看使用者定義角色,需要 ALTER ANY ROLE,或角色的成員資格(例如 public)。
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
下列查詢會列出明確授與或拒絕資料庫主體的許可權。
重要
固定資料庫角色的許可權不會出現在 中 sys.database_permissions
。 因此,資料庫主體可能會有此處未列出的其他許可權。
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id;
下列查詢會將 sys.database_principals 和 sys.database_permissions
聯結至 sys.objects 和 sys.schemas ,以列出授與或拒絕特定架構對象的許可權。
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
您可以使用上述範例來查詢單一資料庫物件特定的許可權。
例如,請考慮在範例資料庫中AdventureWorksDW2022
下列細微許可權:
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
尋找指派給 dbo.vAssocSeqOrders
的細微權限:
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
傳回輸出:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊