Mysql

REFERENCES 權限僅與創建外鍵約束有關嗎?實際案例?

  • January 8, 2017

今天我了解了GRANT REFERENCES. 在多年的 SQL 管理和開發工作中,我從未聽說過它,也從未遇到過問題。

引自MySQL 5.7 Reference Manual / GRANT Syntax

REFERENCES 啟用外鍵創建。級別:全域、數據庫、表、列。

引用PostgreSQL 9.6 / GRANT

REFERENCES 要創建外鍵約束,必須對引用列和被引用列都具有此特權。可以為表的所有列或僅特定列授予特權。

只是GRANT REFERENCES關於創建外鍵約束?在什麼商業案例中禁止創建外鍵約束(但允許創建表)有意義?你能給我現實世界的例子嗎?

如果您有能力創建外鍵約束,那麼您實際上獲得了檢查表的某個列(或一組列)中某個值是否存在/不存在的權限。您可能沒有權限查看SELECT此列中的整個值列表,但您已經可以了解它們。您可以嘗試在引用表上插入值。那些被允許的,你已經知道存在於引用的表中。

如果您對這些值一無所知,則不能授予您foreign key constraint對列進行 a 的特權。

再加上@Erwin 指出的考慮因素,WRT 能夠防止引用的表中刪除。

引用自:https://dba.stackexchange.com/questions/159855