提交 e9bfb51a 编写于 作者: 马晓光

add postgre grant rule

上级 7512032b
......@@ -15,6 +15,10 @@ databaseName
: ID
;
domainName
: ID
;
tableName
: ID
;
......@@ -23,6 +27,10 @@ columnName
: ID
;
sequenceName
: ID
;
tablespaceName
: ID
;
......@@ -144,6 +152,18 @@ rangeClause
: NUMBER (COMMA NUMBER)* | NUMBER OFFSET NUMBER
;
schemaNames
: schemaName (COMMA schemaName)*
;
databaseNames
: databaseName (COMMA databaseName)*
;
domainNames
: domainName (COMMA domainName)*
;
tableNamesWithParen
: LP_ tableNames RP_
;
......@@ -164,10 +184,22 @@ columnList
: LP_ columnNames RP_
;
sequenceNames
: sequenceName (COMMA sequenceName)*
;
tablespaceNames
: tablespaceName (COMMA tablespaceName)*
;
indexNames
: indexName (COMMA indexName)*
;
typeNames
: typeName (COMMA typeName)*
;
rowNames
: rowName (COMMA rowName)*
;
......
......@@ -2,22 +2,10 @@ lexer grammar Keyword;
import Symbol;
ADD
: A D D
;
ALL
: A L L
;
ALTER
: A L T E R
;
ALWAYS
: A L W A Y S
;
AND
: A N D
;
......@@ -54,62 +42,14 @@ BY
: B Y
;
CASCADE
: C A S C A D E
;
CHECK
: C H E C K
;
COLUMN
: C O L U M N
;
COMMIT
: C O M M I T
;
COMMITTED
: C O M M I T T E D
;
CONSTRAINT
: C O N S T R A I N T
;
CREATE
: C R E A T E
;
DATE
: D A T E
;
DEFAULT
: D E F A U L T
;
DELETE
: D E L E T E
;
DESC
: D E S C
;
DISABLE
: D I S A B L E
;
DROP
: D R O P
;
ENABLE
: E N A B L E
;
ESCAPE
: E S C A P E
;
......@@ -122,18 +62,10 @@ FALSE
: F A L S E
;
FOREIGN
: F O R E I G N
;
FROM
: F R O M
;
GENERATED
: G E N E R A T E D
;
GROUP
: G R O U P
;
......@@ -142,34 +74,18 @@ HAVING
: H A V I N G
;
IF
: I F
;
IN
: I N
;
INDEX
: I N D E X
;
IS
: I S
;
ISOLATION
: I S O L A T I O N
;
KEY
: K E Y
;
LEVEL
: L E V E L
;
LIKE
: L I K E
;
......@@ -182,10 +98,6 @@ MOD
: M O D
;
NO
: N O
;
NOT
: N O T
;
......@@ -198,10 +110,6 @@ OFFSET
: O F F S E T
;
ON
: O N
;
OR
: O R
;
......@@ -218,26 +126,14 @@ PRIMARY
: P R I M A R Y
;
READ
: R E A D
;
RECURSIVE
: R E C U R S I V E
;
REFERENCES
: R E F E R E N C E S
;
REGEXP
: R E G E X P
;
ROLLBACK
: R O L L B A C K
;
ROLLUP
: R O L L U P
;
......@@ -250,10 +146,6 @@ SELECT
: S E L E C T
;
SERIALIZABLE
: S E R I A L I Z A B L E
;
SET
: S E T
;
......@@ -262,14 +154,6 @@ SOUNDS
: S O U N D S
;
START
: S T A R T
;
TABLE
: T A B L E
;
TIME
: T I M E
;
......@@ -278,30 +162,14 @@ TIMESTAMP
: T I M E S T A M P
;
TO
: T O
;
TRANSACTION
: T R A N S A C T I O N
;
TRUE
: T R U E
;
TRUNCATE
: T R U N C A T E
;
UNION
: U N I O N
;
UNIQUE
: U N I Q U E
;
UNKNOWN
: U N K N O W N
;
......@@ -314,16 +182,48 @@ WITH
: W I T H
;
WORK
: W O R K
;
XOR
: X O R
;
YEAR
: Y E A R
ADD
: A D D
;
ALTER
: A L T E R
;
ALWAYS
: A L W A Y S
;
CASCADE
: C A S C A D E
;
CHECK
: C H E C K
;
COLUMN
: C O L U M N
;
COMMIT
: C O M M I T
;
COMMITTED
: C O M M I T T E D
;
CONSTRAINT
: C O N S T R A I N T
;
CREATE
: C R E A T E
;
CURRENT
......@@ -334,6 +234,122 @@ DAY
: D A Y
;
DEFAULT
: D E F A U L T
;
DELETE
: D E L E T E
;
DISABLE
: D I S A B L E
;
DROP
: D R O P
;
ENABLE
: E N A B L E
;
FOREIGN
: F O R E I G N
;
FUNCTION
: F U N C T I O N
;
GENERATED
: G E N E R A T E D
;
GRANT
: G R A N T
;
INDEX
: I N D E X
;
ISOLATION
: I S O L A T I O N
;
LEVEL
: L E V E L
;
NO
: N O
;
ON
: O N
;
OPTION
: O P T I O N
;
PRIVILEGES
: P R I V I L E G E S
;
READ
: R E A D
;
REFERENCES
: R E F E R E N C E S
;
ROLE
: R O L E
;
ROLLBACK
: R O L L B A C K
;
SERIALIZABLE
: S E R I A L I Z A B L E
;
START
: S T A R T
;
TABLE
: T A B L E
;
TO
: T O
;
TRANSACTION
: T R A N S A C T I O N
;
TRUNCATE
: T R U N C A T E
;
UNIQUE
: U N I Q U E
;
USER
: U S E R
;
\ No newline at end of file
;
WORK
: W O R K
;
YEAR
: Y E A R
;
grammar PostgreSQLDCLStatement;
import PostgreSQLKeyword, Keyword, BaseRule, DataType, Symbol;
import PostgreSQLKeyword, Keyword, PostgreSQLBase, BaseRule, DataType, Symbol;
grant
: GRANT privType columnList? (COMMA privType columnList?)*
ON (
TABLE? tableNames
| ALL TABLES IN SCHEMA schemaNames
| SEQUENCE sequenceNames
| ALL SEQUENCES IN SCHEMA schemaNames
| DATABASE databaseNames
| DOMAIN domainNames
| FOREIGN DATA WRAPPER ID (COMMA ID)*
| FOREIGN SERVER ID (COMMA ID)*
| (FUNCTION | PROCEDURE | ROUTINE) routineName (LP_ (argMode? ID? dataType (COMMA argMode? ID? dataType)*)? RP_)?
(COMMA (FUNCTION | PROCEDURE | ROUTINE) routineName (LP_ (argMode? ID? dataType (COMMA argMode? ID? dataType)*)? RP_)?)*
| ALL (FUNCTION | PROCEDURE | ROUTINE) IN SCHEMA schemaNames
| LANGUAGE ID (COMMA ID)*
| LARGE OBJECT ID (COMMA ID)*
| SCHEMA schemaNames
| TABLESPACE tablespaceNames
| TYPE typeNames
)
TO roleSpecifications
(WITH GRANT OPTION)?
;
privType
: ALL PRIVILEGES?
| SELECT
| INSERT
| UPDATE
| DELETE
| TRUNCATE
| REFERENCES
| TRIGGER
| CREATE
| CONNECT
| TEMPORARY
| TEMP
| EXECUTE
| USAGE
;
roleSpecification
: GROUP? roleName | PUBLIC | CURRENT_USER | SESSION_USER
;
argMode
: IN | OUT | INOUT | VARIADIC
;
roleSpecifications
: roleSpecification (COMMA roleSpecification)*
;
grantRole
: GRANT roleNames TO roleNames (WITH ADMIN OPTION)?
;
createUser
: CREATE USER roleName (WITH? roleOptions)?
......@@ -40,12 +97,6 @@ alterUser
: ALTER USER roleSpecification WITH roleOptions
;
roleSpecification
: roleName
| CURRENT_USER
| SESSION_USER
;
renameUser
: ALTER USER roleName RENAME TO roleName
;
......
......@@ -66,6 +66,10 @@ CONCURRENTLY
: C O N C U R R E N T L Y
;
CONNECT
: C O N N E C T
;
CONNECTION
: C O N N E C T I O N
;
......@@ -122,6 +126,10 @@ DISTINCT
: D I S T I N C T
;
DOMAIN
: D O M A I N
;
DOUBLE
: D O U B L E
;
......@@ -134,6 +142,10 @@ EXCLUDING
: E X C L U D I N G
;
EXECUTE
: E X E C U T E
;
EXTENDED
: E X T E N D E D
;
......@@ -226,6 +238,22 @@ INITIALLY
: I N I T I A L L Y
;
INOUT
: I N O U T
;
INSERT
: I N S E R T
;
LANGUAGE
: L A N G U A G E
;
LARGE
: L A R G E
;
LAST
: L A S T
;
......@@ -302,6 +330,10 @@ NULLS
: N U L L S
;
OBJECT
: O B J E C T
;
OF
: O F
;
......@@ -314,6 +346,10 @@ ONLY
: O N L Y
;
OUT
: O U T
;
OVER
: O V E R
;
......@@ -350,6 +386,14 @@ PREPARED
: P R E P A R E D
;
PROCEDURE
: P R O C E D U R E
;
PUBLIC
: P U B L I C
;
RANGE
: R A N G E
;
......@@ -382,6 +426,10 @@ RESTRICT
: R E S T R I C T
;
ROUTINE
: R O U T I N E
;
ROWS
: R O W S
;
......@@ -394,6 +442,10 @@ SAVEPOINT
: S A V E P O I N T
;
SCHEMA
: S C H E M A
;
SECOND
: S E C O N D
;
......@@ -402,6 +454,18 @@ SECURITY
: S E C U R I T Y
;
SEQUENCE
: S E Q U E N C E
;
SEQUENCES
: S E Q U E N C E S
;
SERVER
: S E R V E R
;
SESSION
: S E S S I O N
;
......@@ -438,6 +502,10 @@ SYSID
: S Y S I D
;
TABLES
: T A B L E S
;
TABLESPACE
: T A B L E S P A C E
;
......@@ -478,6 +546,10 @@ UPDATE
: U P D A T E
;
USAGE
: U S A G E
;
USING
: U S I N G
;
......@@ -490,6 +562,10 @@ VALIDATE
: V A L I D A T E
;
VARIADIC
: V A R I A D I C
;
VARYING
: V A R Y I N G
;
......@@ -502,6 +578,10 @@ WITHOUT
: W I T H O U T
;
WRAPPER
: W R A P P E R
;
WRITE
: W R I T E
;
......
......@@ -18,6 +18,8 @@ execute
| rollback
| savepoint
| beginWork
| grant
| grantRole
| createUser
| alterUser
| renameUser
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册