定義存取權限。
文法
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
命令中無需區分被授權者是使用者還是組。