全部產品
Search
文件中心

PolarDB:GRANT

更新時間:Jul 06, 2024

定義存取權限。

文法

GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES }
  [,...] | ALL [ PRIVILEGES ] }
  ON tablename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { { INSERT | UPDATE | REFERENCES } (column [, ...]) }
  [, ...]
  ON tablename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { SELECT | ALL [ PRIVILEGES ] }
  ON sequencename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON FUNCTION progname
    ( [ [ argmode ] [ argname ] argtype ] [, ...] )
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON PROCEDURE progname
    [ ( [ [ argmode ] [ argname ] argtype ] [, ...] ) ]
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  ON PACKAGE packagename
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH GRANT OPTION ]

GRANT role [, ...]
  TO { username | groupname | PUBLIC } [, ...]
  [ WITH ADMIN OPTION ]

GRANT { CONNECT | RESOURCE | DBA } [, ...]
  TO { username | groupname } [, ...]
  [ WITH ADMIN OPTION ]

GRANT CREATE [ PUBLIC ] DATABASE LINK
  TO { username | groupname }

GRANT DROP PUBLIC DATABASE LINK
  TO { username | groupname }

GRANT EXEMPT ACCESS POLICY
  TO { username | groupname }

說明

GRANT 命令具有三種基本變化形式:一種授予對資料庫物件(表、視圖、序列或程式)的特權,一種授予角色中的成員資格,還有一種授予系統特權。這些變化形式雖然在多個方面彼此相似,但仍存在較大差異並需要單獨說明。

PolarDB PostgreSQL版(相容Oracle)中,使用者和組的概念已經統一為名為角色的單個實體類型。在這種情況下,使用者是指具有 LOGIN 屬性的角色,可以使用角色建立會話並串連到應用程式。組是指不具有 LOGIN 屬性的角色,不能使用角色建立會話或串連到應用程式。

角色可以是一個或多個其他角色的成員,因此使用者屬於群組成員的傳統概念仍然有效。不過,寬泛地提到使用者和組時,使用者可能“屬於”使用者,組可能“屬於”組,而且組可能“屬於”使用者,從而形成常規的多級角色階層。使用者名稱稱和組名稱共用同一命名空間,因此在 GRANT 命令中無需區分被授權者是使用者還是組。