日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ALTER DEFAULT PRIVILEGES允許你設(shè)置將被應(yīng)用于未來要創(chuàng)建的對象的特權(quán)(它不會影響分配給已經(jīng)存在的對象的特權(quán))。

簡介

當(dāng)前,只能修改用于模式、表(包括視圖和外部表)、序列、函數(shù)和類型(包括域)的特權(quán)。其中,可設(shè)置權(quán)限的函數(shù)包括聚集函數(shù)和過程函數(shù)。當(dāng)這個命令應(yīng)用于函數(shù)時,單詞FUNCTIONSROUTINES是等效的。(推薦使用ROUTINES,因為它是用來囊括函數(shù)和過程的一個標(biāo)準(zhǔn)術(shù)語。在較早的 PolarDB 發(fā)行版中,只允許單詞FUNCTIONS。無法為函數(shù)或過程單獨設(shè)置默認(rèn)特權(quán)。)

你只能改變你自己或者你屬于其中的角色所創(chuàng)建的對象的默認(rèn)特權(quán)。這些特權(quán)可以對全局范圍設(shè)置(即對當(dāng)前數(shù)據(jù)庫中創(chuàng)建的所有對象),或者只對在指定模式中創(chuàng)建的對象設(shè)置。用于任何對象類型的默認(rèn)特權(quán)通常會把所有可授予的權(quán)限授予給對象擁有者,并且也可能授予一些特權(quán)給PUBLIC。不過,這種行為可以通過使用ALTER DEFAULT PRIVILEGES修改全局默認(rèn)特權(quán)來改變。

每個模式規(guī)定的默認(rèn)權(quán)限將添加到特定對象類型的全局默認(rèn)特權(quán)的內(nèi)容中。 這意味著你不能撤銷每個模式的特權(quán),如果它們已經(jīng)被全局授予(默認(rèn)情況下,或者根據(jù)以前未規(guī)定模式的ALTER DEFAULT PRIVILEGES命令)。 每個模式的REVOKE僅用于反轉(zhuǎn)以前每個模式GRANT的影響。

語法

    ALTER DEFAULT PRIVILEGES
        [ FOR { ROLE | USER } target_role [, ...] ]
        [ IN SCHEMA schema_name [, ...] ]
        abbreviated_grant_or_revoke

    其中abbreviated_grant_or_revoke是下列之一:

    GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
        [, ...] | ALL [ PRIVILEGES ] }
        ON TABLES
        TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    GRANT { { USAGE | SELECT | UPDATE }
        [, ...] | ALL [ PRIVILEGES ] }
        ON SEQUENCES
        TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    GRANT { EXECUTE | ALL [ PRIVILEGES ] }
        ON { FUNCTIONS | ROUTINES }
        TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    GRANT { USAGE | ALL [ PRIVILEGES ] }
        ON TYPES
        TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] }
        ON SCHEMAS
        TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]

    REVOKE [ GRANT OPTION FOR ]
        { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
        [, ...] | ALL [ PRIVILEGES ] }
        ON TABLES
        FROM { [ GROUP ] role_name | PUBLIC } [, ...]
        [ CASCADE | RESTRICT ]

    REVOKE [ GRANT OPTION FOR ]
        { { USAGE | SELECT | UPDATE }
        [, ...] | ALL [ PRIVILEGES ] }
        ON SEQUENCES
        FROM { [ GROUP ] role_name | PUBLIC } [, ...]
        [ CASCADE | RESTRICT ]

    REVOKE [ GRANT OPTION FOR ]
        { EXECUTE | ALL [ PRIVILEGES ] }
        ON { FUNCTIONS | ROUTINES }
        FROM { [ GROUP ] role_name | PUBLIC } [, ...]
        [ CASCADE | RESTRICT ]

    REVOKE [ GRANT OPTION FOR ]
        { USAGE | ALL [ PRIVILEGES ] }
        ON TYPES
        FROM { [ GROUP ] role_name | PUBLIC } [, ...]
        [ CASCADE | RESTRICT ]

    REVOKE [ GRANT OPTION FOR ]
        { USAGE | CREATE | ALL [ PRIVILEGES ] }
        ON SCHEMAS
        FROM { [ GROUP ] role_name | PUBLIC } [, ...]
        [ CASCADE | RESTRICT ]

參數(shù)

target_role一個現(xiàn)有角色的名稱,當(dāng)前角色是它的一個成員。如果FOR ROLE被忽略,將假定為當(dāng)前角色。

schema_name一個現(xiàn)有模式的名稱。如果被指定,以后在那個模式中創(chuàng)建的對象的默認(rèn)特權(quán)會被修改。如果IN SCHEMA被忽略,全局默認(rèn)特權(quán)會被修改。 當(dāng)設(shè)置特權(quán)給模式時不能使用IN SCHEMA,因為模式不能嵌套。

role_name要為其授予或者收回特權(quán)的一個現(xiàn)有角色的名稱。這個參數(shù)以及所有 abbreviated_grant_or_revoke中的其他參數(shù)會按照 GRANT 或者 REVOKE 中描述的方式運(yùn)作,不過這里是為一整類的對象而不是特別指定的對象設(shè)置權(quán)限。

說明

如果你希望刪除一個默認(rèn)特權(quán)被修改的角色,有必要撤銷其默認(rèn)特權(quán)上的改變或者使用DROP OWNED BY來為該角色去除默認(rèn)特權(quán)項。

示例

為你后續(xù)在模式myschema中創(chuàng)建的所有表(和視圖)授予 SELECT 特權(quán),并且也允許角色webuser向它們之中 INSERT 數(shù)據(jù):

    ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC;
    ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT ON TABLES TO webuser;

撤銷上面的動作,因此后續(xù)創(chuàng)建的表不會有任何不尋常的權(quán)限:

    ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE SELECT ON TABLES FROM PUBLIC;
    ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;

為后續(xù)由角色admin創(chuàng)建的所有函數(shù)移除通常在函數(shù)上會授予的公共 EXECUTE 權(quán)限:

    ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

但是注意你不能使用限制為單個模式的命令來實現(xiàn)該效果。 此命令不起作用,除非它撤消匹配的GRANT

    ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

這是因為每個模式的默認(rèn)特權(quán)只能向全局設(shè)置添加特權(quán),而不能移除它授予的特權(quán)。