Add tests for sequence privileges
This commit is contained in:
parent
69fed5b26f
commit
a5f7d58194
@ -367,6 +367,41 @@ DROP SEQUENCE seq2;
|
||||
SELECT lastval();
|
||||
ERROR: lastval is not yet defined in this session
|
||||
CREATE USER seq_user;
|
||||
-- privileges tests
|
||||
-- nextval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- currval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
@ -377,8 +412,96 @@ SELECT nextval('seq3');
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
currval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
currval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- lastval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
lastval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
lastval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- Sequences should get wiped out as well:
|
||||
DROP TABLE serialTest, serialTest2;
|
||||
|
@ -367,6 +367,41 @@ DROP SEQUENCE seq2;
|
||||
SELECT lastval();
|
||||
ERROR: lastval is not yet defined in this session
|
||||
CREATE USER seq_user;
|
||||
-- privileges tests
|
||||
-- nextval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- currval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
@ -377,8 +412,96 @@ SELECT nextval('seq3');
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
currval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
currval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- lastval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
lastval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
ERROR: permission denied for sequence seq3
|
||||
ROLLBACK;
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
nextval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
lastval
|
||||
---------
|
||||
1
|
||||
(1 row)
|
||||
|
||||
ROLLBACK;
|
||||
-- Sequences should get wiped out as well:
|
||||
DROP TABLE serialTest, serialTest2;
|
||||
|
@ -168,11 +168,86 @@ SELECT lastval();
|
||||
|
||||
CREATE USER seq_user;
|
||||
|
||||
-- privileges tests
|
||||
|
||||
-- nextval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT nextval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
-- currval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT currval('seq3');
|
||||
ROLLBACK;
|
||||
|
||||
-- lastval
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT SELECT ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT UPDATE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
ROLLBACK;
|
||||
|
||||
BEGIN;
|
||||
SET LOCAL SESSION AUTHORIZATION seq_user;
|
||||
CREATE SEQUENCE seq3;
|
||||
SELECT nextval('seq3');
|
||||
REVOKE ALL ON seq3 FROM seq_user;
|
||||
GRANT USAGE ON seq3 TO seq_user;
|
||||
SELECT lastval();
|
||||
ROLLBACK;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user