Права REFERENCES к столбцам

Права REFERENCES к столбцам

Привилегия REFERENCES является необходимым дополнением при предоставлении полномочий к таблице, у которой есть внешний ключ. Она нужна, если пользователь, создающий внешний ключ в таблице, не владеет таблицей, на которую ссылается этот ключ.

REFERENCES предоставляет полномочия к столбцам. Должны быть включены все столбцы, на которые ссылается внешний ключ таблицы, к которой предоставляются права. Если оператор GRANT REFERENCES ссылается на таблицу без указания столбцов, то полномочия предоставляются к каждому столбцу. Столбцы, которые не указаны в связи между внешним ключом и первичным ключом главной таблицы, не включаются в привилегию.

Вы можете задать только ключевые столбцы и, возможно, сохранить некоторую избыточность, если первичная таблица содержит очень много столбцов. Если вы сделаете так, вы должны задать все связанные ключевые столбцы. Упрощенный синтаксис выглядит так:

GRANT REFERENCES

ON <первичная-таблица> [ (<ключевой-столбец>

[, <ключевой-столбец> [, . . . ] ] ) ]

ТО <пользователь>

[WITH GRANT OPTION] ;

Следующий пример предоставляет привилегии REFERENCES К таблице DEPARTMENTS пользователю CHALKY, позволяя CHALKY записывать внешний ключ, который ссылается на первичный ключ таблицы DEPARTMENTS, даже если он не владеет этой таблицей:

GRANT REFERENCES ON DEPARTMENTS (DEPT_NO) TO CHALKY;

! ! !

СОВЕТ. Если видимость ключей не является проблемой, предоставьте привилегии REFERENCES для PUBLIC

. ! .