ALTER DEFAULT PRIVILEGES
Ðазвание
ALTER DEFAULT PRIVILEGES -- опÑеделиÑÑ Ð¿Ñава доÑÑÑпа по ÑмолÑаниÑСинÑакÑиÑ
ALTER DEFAULT PRIVILEGES
[ FOR { ROLE | USER } ÑелеваÑ_ÑÐ¾Ð»Ñ [, ...] ]
[ IN SCHEMA имÑ_ÑÑ
ÐµÐ¼Ñ [, ...] ]
пÑедложение_GRANT_или_REVOKE
Ðде возможнÑе ваÑианÑÑ Ð¿Ñедложение_GRANT_или_REVOKE:
GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON TABLES
TO { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { { USAGE | SELECT | UPDATE }
[, ...] | ALL [ PRIVILEGES ] }
ON SEQUENCES
TO { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTIONS
TO { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...] [ WITH GRANT OPTION ]
GRANT { USAGE | ALL [ PRIVILEGES ] }
ON TYPES
TO { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...] [ WITH GRANT OPTION ]
REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON TABLES
FROM { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ { USAGE | SELECT | UPDATE }
[, ...] | ALL [ PRIVILEGES ] }
ON SEQUENCES
FROM { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTIONS
FROM { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
REVOKE [ GRANT OPTION FOR ]
{ USAGE | ALL [ PRIVILEGES ] }
ON TYPES
FROM { [ GROUP ] имÑ_Ñоли | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]ÐпиÑание
ALTER DEFAULT PRIVILEGES позволÑÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ Ð¿Ñава, пÑименÑемÑе к обÑекÑам, коÑоÑÑе бÑдÑÑ ÑоздаваÑÑÑÑ Ð² бÑдÑÑем. (ÐÑа команда не заÑÑÐ°Ð³Ð¸Ð²Ð°ÐµÑ Ð¿Ñава, назнаÑеннÑе Ñже ÑÑÑеÑÑвÑÑÑим обÑекÑам.) РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ задаваÑÑ Ð¿Ñава ÑолÑко Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¸Ñ (вклÑÑÐ°Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑÑоÑонние ÑаблиÑÑ), поÑледоваÑелÑноÑÑей, ÑÑнкÑий и Ñипов (вклÑÑÐ°Ñ Ð´Ð¾Ð¼ÐµÐ½Ñ).
ÐÑ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ Ð¿Ñава по ÑмолÑÐ°Ð½Ð¸Ñ ÑолÑко Ð´Ð»Ñ Ð¾Ð±ÑекÑов, коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð²Ð°Ð¼Ð¸ или ÑолÑми, Ñленами коÑоÑÑÑ Ð²Ñ ÑвлÑеÑеÑÑ. ÐÑава можно задаÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»Ñно (Ñ. е. Ð´Ð»Ñ Ð²ÑÐµÑ Ð¾Ð±ÑекÑов, ÑоздаваемÑÑ Ð² ÑекÑÑей базе даннÑÑ ) или Ð´Ð»Ñ Ð¾Ð¿ÑеделÑннÑÑ ÑÑ ÐµÐ¼. ÐаданнÑе на ÑÑовне ÑÑ ÐµÐ¼Ñ Ð¿Ñава по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ðº Ñем, ÑÑо опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ñно Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑного Ñипа обÑекÑа.
Ðак обÑÑÑнÑеÑÑÑ Ð² GRANT, пÑава по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±ÑекÑов лÑбого Ñипа обÑÑно даÑÑ Ð²Ñе назнаÑаемÑе ÑазÑеÑÐµÐ½Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑÑ Ð¾Ð±ÑекÑа, а Ñакже могÑÑ Ð´Ð°Ð²Ð°ÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑазÑеÑÐµÐ½Ð¸Ñ Ñоли PUBLIC. Ðднако ÑÑо поведение можно поменÑÑÑ, изменив пÑава по ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ ALTER DEFAULT PRIVILEGES.
ÐаÑамеÑÑÑ
- ÑелеваÑ_ÑолÑ
ÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑей Ñоли, Ñленом коÑоÑой ÑвлÑеÑÑÑ ÑекÑÑаÑ. ÐÑли FOR ROLE опÑÑено, подÑазÑмеваеÑÑÑ ÑекÑÑÐ°Ñ ÑолÑ.
- имÑ_ÑÑ ÐµÐ¼Ñ
ÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑей ÑÑ ÐµÐ¼Ñ. ÐÑли Ñказано, пÑава по ÑмолÑÐ°Ð½Ð¸Ñ Ð¼ÐµÐ½ÑÑÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑекÑов, коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð² ÑÑой ÑÑ ÐµÐ¼Ðµ. ÐÑли IN SCHEMA опÑÑено, менÑÑÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑе пÑава по ÑмолÑаниÑ.
- имÑ_Ñоли
ÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑей Ñоли, Ð´Ð»Ñ ÐºÐ¾ÑоÑой даÑÑÑÑ Ð¸Ð»Ð¸ оÑзÑваÑÑÑÑ Ð¿Ñава. ÐÑÐ¾Ñ Ð¸ вÑе дÑÑгие паÑамеÑÑÑ Ð² пÑедложении_grant_или_revoke дейÑÑвÑÑÑ ÐºÐ°Ðº опиÑано в GRANT или REVOKE, за иÑклÑÑением Ñого, ÑÑо они ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ð½Ðµ на один конкÑеÑнÑй обÑекÑ, а на ÑелÑй клаÑÑ Ð¾Ð±ÑекÑов.
ÐамеÑаниÑ
ЧÑÐ¾Ð±Ñ ÑзнаÑÑ ÑекÑÑие назнаÑеннÑе пÑава по ÑмолÑаниÑ, воÑполÑзÑйÑеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ \ddp в psql . ÐнÑеÑпÑеÑаÑÐ¸Ñ Ð·Ð½Ð°Ñений пÑав пÑиведена в опиÑании ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \dp в GRANT.
ÐÑли Ð²Ñ Ð¶ÐµÐ»Ð°ÐµÑе ÑдалиÑÑ ÑолÑ, пÑава по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾ÑоÑой бÑли измененÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ñвно оÑмениÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñав по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ воÑполÑзоваÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ DROP OWNED BY Ð´Ð»Ñ Ð¸Ð·Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ Ð½Ð°Ð·Ð½Ð°ÑеннÑÑ Ð´Ð»Ñ ÑÑой Ñоли пÑав по ÑмолÑаниÑ.
ÐÑимеÑÑ
Ðаделение вÑÐµÑ Ð¿Ñавом SELECT Ð´Ð»Ñ Ð²ÑÐµÑ ÑÐ°Ð±Ð»Ð¸Ñ (и пÑедÑÑавлений), коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð² далÑнейÑем в ÑÑ ÐµÐ¼Ðµ myschema, и наделение Ñоли webuser пÑавом INSERT Ð´Ð»Ñ ÑÑÐ¸Ñ Ð¶Ðµ ÑаблиÑ:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC; ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT ON TABLES TO webuser;
ÐÑмена пÑедÑдÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ñ Ñем, ÑÑÐ¾Ð±Ñ Ð´Ð»Ñ ÑаблиÑ, ÑоздаваемÑÑ Ð² бÑдÑÑем, бÑли опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑолÑко обÑÑнÑе пÑава, без дополниÑелÑнÑÑ :
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE SELECT ON TABLES FROM PUBLIC; ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;
ÐиÑение Ñоли public пÑава на вÑполнение (EXECUTE), коÑоÑое обÑÑно даÑÑÑÑ Ð´Ð»Ñ ÑÑнкÑий (Ð´Ð»Ñ Ð²ÑÐµÑ ÑÑнкÑий, коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ ÑолÑÑ admin):
ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
СовмеÑÑимоÑÑÑ
ÐпеÑаÑÐ¾Ñ ALTER DEFAULT PRIVILEGES оÑÑÑÑÑÑвÑÐµÑ Ð² ÑÑандаÑÑе SQL.
| ÐÑед. | ÐаÑало | След. |
| ALTER DATABASE | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | ALTER DOMAIN |