mirror of https://github.com/citusdata/citus.git
70 lines
2.1 KiB
Plaintext
70 lines
2.1 KiB
Plaintext
--
|
|
-- MULTI_MULTIUSER_COPY
|
|
--
|
|
-- Create a new hash-partitioned table into which to COPY
|
|
CREATE TABLE customer_copy_hash (
|
|
c_custkey integer,
|
|
c_name varchar(25) not null,
|
|
c_address varchar(40),
|
|
c_nationkey integer,
|
|
c_phone char(15),
|
|
c_acctbal decimal(15,2),
|
|
c_mktsegment char(10),
|
|
c_comment varchar(117),
|
|
primary key (c_custkey));
|
|
SELECT create_distributed_table('customer_copy_hash', 'c_custkey', 'hash');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
GRANT ALL ON TABLE customer_copy_hash TO full_access;
|
|
GRANT SELECT ON TABLE customer_copy_hash TO read_access;
|
|
-- COPY FROM as superuser
|
|
COPY customer_copy_hash (c_custkey,c_name) FROM STDIN;
|
|
-- COPY FROM as user with ALL access
|
|
SET ROLE full_access;
|
|
COPY customer_copy_hash (c_custkey,c_name) FROM STDIN;
|
|
;
|
|
RESET ROLE;
|
|
-- COPY FROM as user with SELECT access, should fail
|
|
SET ROLE read_access;
|
|
COPY customer_copy_hash (c_custkey,c_name) FROM STDIN;
|
|
ERROR: permission denied for table customer_copy_hash
|
|
3 customer3
|
|
\.
|
|
invalid command \.
|
|
;
|
|
ERROR: syntax error at or near "3"
|
|
RESET ROLE;
|
|
-- COPY FROM as user with no access, should fail
|
|
SET ROLE no_access;
|
|
COPY customer_copy_hash (c_custkey,c_name) FROM STDIN;
|
|
ERROR: permission denied for table customer_copy_hash
|
|
4 customer4
|
|
\.
|
|
invalid command \.
|
|
;
|
|
ERROR: syntax error at or near "4"
|
|
RESET ROLE;
|
|
-- COPY TO as superuser
|
|
COPY (SELECT * FROM customer_copy_hash ORDER BY 1) TO STDOUT;
|
|
1 customer1 \N \N \N \N \N \N
|
|
2 customer2 \N \N \N \N \N \N
|
|
SET ROLE full_access;
|
|
COPY (SELECT * FROM customer_copy_hash ORDER BY 1) TO STDOUT;
|
|
1 customer1 \N \N \N \N \N \N
|
|
2 customer2 \N \N \N \N \N \N
|
|
RESET ROLE;
|
|
-- COPY FROM as user with SELECT access, should work
|
|
SET ROLE read_access;
|
|
COPY (SELECT * FROM customer_copy_hash ORDER BY 1) TO STDOUT;
|
|
1 customer1 \N \N \N \N \N \N
|
|
2 customer2 \N \N \N \N \N \N
|
|
RESET ROLE;
|
|
-- COPY FROM as user with no access, should fail
|
|
SET ROLE no_access;
|
|
COPY (SELECT * FROM customer_copy_hash ORDER BY 1) TO STDOUT;
|
|
ERROR: permission denied for table customer_copy_hash
|
|
RESET ROLE;
|